在 Debian 上使用 iptables 做“转发”一般分几种常见场景。下面按最常用的端口转发(DNAT)讲,并补充系统转发开关和常见注意事项。
iptables 的转发依赖内核 IP Forwarding。
sysctl -w net.ipv4.ip_forward=1
编辑:
nano /etc/sysctl.conf
添加或修改:
net.ipv4.ip_forward=1
生效:
sysctl -p
192.168.1.1010.0.0.5:80192.168.1.10:8080 → 转发到 10.0.0.5:80iptables -t nat -A PREROUTING -p tcp --dport 8080 \
-j DNAT --to-destination 10.0.0.5:80
iptables -A FORWARD -p tcp -d 10.0.0.5 --dport 80 -j ACCEPT
否则回包不会回来:
iptables -t nat -A POSTROUTING -p tcp -d 10.0.0.5 --dport 80 \
-j SNAT --to-source 192.168.1.10
或简单点(推荐):
iptables -t nat -A POSTROUTING -j MASQUERADE
仅限 本机访问:
iptables -t nat -A OUTPUT -p tcp --dport 8080 \
-j REDIRECT --to-port 80
iptables -t nat -L -n -v
iptables -L -n -v
apt install iptables-persistent
netfilter-persistent save
或:
iptables-save > /etc/iptables/rules.v4
✅ 必须开 ip_forward
✅ FORWARD 链不能 DROP
✅ 有回包路径(SNAT / MASQUERADE)
✅ 云服务器注意安全组
✅ 防火墙顺序很重要
Debian 10+ 默认推荐 nftables,iptables 只是兼容层。
如果你愿意,我可以:
直接说你的使用场景即可。