使用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 -p

2. 设置 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


sudo ip6tables -t nat -A PREROUTING -p udp --dport 20000:40000 -j DNAT --to-destination [2001:db8::1]:50000-60000
sudo ip6tables -t nat -A POSTROUTING -p udp -d 2001:db8::1 --dport 50000:60000 -j MASQUERADE

3. 规则说明

  • PREROUTING 规则将本地接收到的 UDP 流量(目标端口范围 20000-40000)转发到 1.1.1.150000-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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注