Hysteria 端口跳跃:应对运营商对 UDP 进行 QoS 限制的解决方案

24 年 9 月 2 日 星期一
401 字
3 分钟

AI 摘要

奋力赶来...

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

文章标题:Hysteria 端口跳跃:应对运营商对 UDP 进行 QoS 限制的解决方案

文章作者:Cedar

文章链接:https://some.fylsen.com/posts/hysteria-port-hopping-solution-for-udp-qos-limitation-by-isps  [复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。