本文介绍歇斯底里hysteria节点搭建,通过端口跳跃缓解QoS,相较于普通的Vless节点,hysteria节点可以极大的提升节点速度,即便是普通的线路,晚高峰时也能流畅观看2K视频。本教程服务端使用sing-box搭建,支持配置路由分流与二级代理,windows客户端使用v2rayN,安卓客户端使用了clash-Meta,并提供了clash的负载均衡配置模板。
vps一台,已安装docker(Linux系统Docker安装教程),已创建了一个docker网络(在本教程中,所有的容器都将放置在这个网络中):
docker network create --subnet 192.168.18.0/24 --gateway 192.168.18.1 anqiqii
在本教程中创建了一个名为anqiqii的网络,并确定网关为192.168.18.1(宿主机的内网IP)本教程只完整介绍在ipv4网络下hysteria节点的搭建与连接
可能有用:
racknerd $11一年VPS(3000 GB流量每月,1Gbps) 了解更多
$36.00一年VPS 特惠三网直连线路VPS(Los Angeles, China Optimised, 9929&CMIN2)
歇斯底里2已经推出了并得到了各大客户端的支持,可以查看这个进行部署:
歇斯底里2节点搭建教程(hysteria2)-使用docker singbox搭建歇斯底里2科学上网节点
① 创建一个/etc/sing-box文件夹(用于放置sing-box的配置文件,路径自行指定)
② 进入这个文件夹(cd 命令),使用如下两条命令在当前目录生成私钥与证书(为方便起见,这里只演示使用自签证书):
openssl ecparam -genkey -name prime256v1 -out ca.key
openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=bing.com"
# 自签证书,域名随便指定,要多高大上都行,但不能是被墙的,比如:google.com
③ 在 /etc/sing-box 目录下,创建一个配置文件(config.json),文件模板见:sing-box-conf(解压密码为:caq98i.toponeto221on)
sing-box配置文件修改说明:
第9行:"listen_port": 5666, # 修改为实际部署hysteria的端口
第16、17行:根据服务端实际情况修改
第18行:"obfs": "dfhnefk2345", # 指定一个复杂的字符串,与客户端配置保持一致
第22行:"server_name": "example.com", # 指定一个域名,与证书域名匹配
第24、25行:指定证书路径与私钥路径
第38~46行配置了一个socks5的出站,根据代理提供商给的配置填写(一般住宅ip给的为socks5的代理)
第50~55行配置了一个路由规则,在本例中,只要是域名结尾为.google.com都会匹配到这条规则,走标签为socks-out的出站(也就是第38~46行配置的socks5的出站)
如果所有流量都是直接出站,可直接删除第38~46行和第50~55行
④ 拉取sing-box最新版官方镜像并启动:
docker run -d \
--network anqiqii --ip 192.168.18.5 -p 5666:5666/udp \
--restart unless-stopped --name=singbox \
--volume /etc/sing-box/:/etc/sing-box/ \
gzxhwq/sing-box
这里进行了udp的端口映射,具体端口与配置文件中的保持一致。
⚠ 如果配置文件不正确可能导致singbox容器无法启动,可以将参数-d改为-it,这样可以查看容器启动时的错误信息,便于排查错误。
⑤ 添加端口转发规则(请关闭所有防火墙):
# IPv4
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :5666
# IPv6
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :5666
此规则表示将20000:50000端口的udp协议的请求全部转发到5666端口
补充:
iptables -t nat -nL --line # 查看当前的ipv4网络的规则
iptables -t nat -D PREROUTING 3 # 删除第三条规则
文件hysteria.json为使用hysteria内核的客户端配置,修改说明:
第2行:"server": "192.168.1.99:20000-50000", # 修改为服务器的ip地址,端口范围为服务端端口范围的子集(服务端配置第⑤步)
第3行:"obfs": "dfhnefk2345", # 与服务端配置保持一致
第4、5行:与运营商给的网络带宽保持一致,可以小于运营商给的带宽,但不能大于
第6行:如果是使用的自签证书,请设置为true
然后使用v2rayN添加一个自定义服务器:(core类型选hysteria,这里没有配新图)
PS:最新版的v2rayN已经改用sing-box内核了,支持直接添加hysteria协议,无需采用这里介绍的“添加自定义配置服务器”了。
文件clash-meta.yaml为使用clash meta内核的客户端配置,修改说明:
第6、7行:修改端口和密码(和内核的api,一般用不到,但为了安全请修改)
第9、10行:配置了两个hysteria节点,都是端口跳跃节点,用于缓解QoS,ports根据服务端的开放的端口进行配置,显然这里配置的端口范围为服务端端口的子集。up和down根据客户端实际带宽填写,由于本教程使用的是自签证书所以skip-cert-verify设置为了true。
⚠空格是yaml文件语法的一部分,请注意不要漏掉空格;clash的节点名不能重复
此配置模板默认是使用的轮询的方式进行的负载均衡(第15~17行),可自行更改顺序进行调整;"负载均衡-轮询"使用了两个节点(第41、42行,可自行添加更多的节点用于负载均衡)
然后使用v2rayN添加一个自定义服务器:(core类型选clash meta)
注:这里提供的clash-meta.yaml配置文件,当然和clash更为搭配:
clash使用教程——clash verge(clash meta内核)新手使用教程
安卓客户端可以使用clash meta进行连接,下载地址:Releases · MetaCubeX/ClashMetaForAndroid
将修改好的clash-meta.yaml文件发送到Android设备,然后按照如下方式添加一个自定义配置:
捐赠通道,感谢!🦀🦀