使用iptables转发端口范围
如果需要将本地的 UDP 端口范围 20000-40000 转发到 1.1.1.1 的 UDP 端口范围 50000-60000,只需在 iptables 规则中将协议改为 udp。以下是设置步骤:
1. 确保启用 IP 转发
永久启用端口转发
nano /etc/sysctl.conf复制
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1添加到 /etc/sysctl.conf,
然后运行:
sysctl -p2. 设置 iptables 端口转发规则(UDP)
(1)ipv4端口转发
使用以下 iptables 命令将 UDP 的端口范围 20000-40000 转发到 1.1.1.1 的 UDP 端口范围 50000-60000:
iptables -t nat -A PREROUTING -p udp --dport 20000:40000 -j DNAT --to-destination 1.1.1.1:50000-60000
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 50000:60000 -j MASQUERADE(2)ipv6端口转发
将本地的 UDP 端口 20000-40000 转发到目标 IPv6 地址 2001:db8::1 的端口范围 50000-60000。
ip6tables -t nat -A PREROUTING -p udp --dport 20000:40000 -j DNAT --to-destination [2001:db8::1]:50000-60000
ip6tables -t nat -A POSTROUTING -p udp -d 2001:db8::1 --dport 50000:60000 -j MASQUERADE3. 规则说明
- PREROUTING 规则将本地接收到的 UDP 流量(目标端口范围
20000-40000)转发到1.1.1.1的50000-60000端口范围。 - MASQUERADE 规则用于 NAT(网络地址转换),使得流量的返回路径正常。
4. 保存 iptables 规则
为了确保规则在重启后生效,保存 iptables 规则:
- 在 Debian/Ubuntu 系统中,可以使用
iptables-persistent工具:
apt-get install iptables-persistent
netfilter-persistent save完成以上步骤后,本地的 UDP 端口 20000-40000 会转发到 1.1.1.1 的 UDP 端口范围 50000-60000。