Hysteria 2虽然性能炸裂,但是遇到运营商(ISP)对 UDP 进行 QoS 限制,也是毫无体验可言。不过针对单个端口的阻断方式,Hysteria 2可以使用端口跳跃的形式进行解决。
服务器端设置
之前已经在 Ubuntu 下已经成功部署了 Hysteria 2,端口跑在443上,目前要做的就是要监听多个端口的流量并转发到443。
使用 iptables、ip6tables 命令转发ipv4、ipv6上一个单个端口、端口段到443。
shell
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 9595 -j REDIRECT --to-ports 443
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 9595 -j REDIRECT --to-ports 443
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 11111:22222 -j REDIRECT --to-ports 443
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 11111:22222 -j REDIRECT --to-ports 443
其中9595、11111:22222就是要转发的端口和端口段,按需更改。
为了保证重启之后依然有效,可以添加到 crontab 中,使用 crontab -e
添加以下内容,每行一条。
shell
@reboot /sbin/iptables -t nat -A PREROUTING -i eth0 -p udp --dport 9595 -j REDIRECT --to-ports 443
@reboot /sbin/ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 9595 -j REDIRECT --to-ports 443
@reboot /sbin/iptables -t nat -A PREROUTING -i eth0 -p udp --dport 11111:22222 -j REDIRECT --to-ports 443
@reboot /sbin/ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 11111:22222 -j REDIRECT --to-ports 443
Surge 中配置
Surge 在最新版本中已经支持了端口跳跃,可以简单配置后使用。
toml
Proxy = hysteria2, 1.2.3.4, 443, password=pwd, port-hopping=443;9595;11111-22222, port-hopping-interval=30
配置 port-hopping 参数后,配置前方的主端口号不再生效。
参数说明
- port-hopping:用于配置端口范围,逗号分隔,支持以-配置范围
- port-hopping-interval:变换端口号的时间间隔,默认为 30s