端口跳跃
中国用户有时报告运营商会阻断或限速 UDP 连接。不过,这些限制往往仅限单个端口。端口跳跃可用作此情况的解决方法。
客户端
Hysteria 客户端支持一种特殊的多端口地址格式:
example.com:1234,5678,9012 # (1)!
example.com:20000-50000 # (2)!
example.com:1234,5000-6000,7044,8000-9000 # (3)!
- 多个单端口。
- 端口范围。
- 两者的组合。
可指定的端口数量没有限制。
客户端将随机选择一个端口进行初始连接,并定期随机跳跃到另一个端口。用于控制时间间隔的选项在 transport 部分中:
注意: 可以使用
hopInterval设置固定间隔,或使用minHopInterval/maxHopInterval设置随机间隔。两者不能同时使用。
假设服务器确实在所有指定的端口上可达,跳跃过程对上层应用是透明的,不会导致数据丢失/连接断开。
服务器
内置端口范围(仅 Linux)
在 Linux 上,Hysteria 服务端内置支持监听端口范围。只需在 listen 字段中指定端口范围:
服务器将监听范围内的第一个端口,并自动设置防火墙规则(使用 nftables 或 iptables)将其他端口的流量重定向到第一个端口。服务器关闭时会自动清理这些规则。
注意: 需要系统上有
nft(nftables)或iptables/ip6tables。服务器可能需要以适当的权限运行(例如 root 或CAP_NET_ADMIN)才能修改防火墙规则。
手动设置
通常不需要,但你也可以使用 iptables 或 nftables 的 DNAT 手动转发端口:
在这个示例中,服务器监听 443 端口,但客户端可以通过 20000-50000 范围内的任何端口连接。