在 Debian 上用 iptables 设置转发(端口/流量转发),通常分为 系统开启转发 和 iptables 规则配置 两部分。
sysctl -w net.ipv4.ip_forward=1
编辑 /etc/sysctl.conf:
nano /etc/sysctl.conf
添加或修改:
net.ipv4.ip_forward=1
生效:
sysctl -p
把本机 8080 端口转发到 192.168.1.10:80
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 80 -j MASQUERADE
说明:
PREROUTING:修改目标地址(DNAT)POSTROUTING:做 SNAT(MASQUERADE 适合动态 IP)iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
(eth0 为出口网卡)
iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save
或:
iptables-save > /etc/iptables/rules.v4
开机恢复:
iptables-restore < /etc/iptables/rules.v4
| 场景 | 做法 |
|---|---|
| 端口转发 | DNAT + MASQUERADE |
| 做网关 | 开启转发 + POSTROUTING |
| 本地访问转发 | 加 OUTPUT 链规则 |
如果 本机访问本机端口 也需要转发:
iptables -t nat -A OUTPUT -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
如果你能告诉我:
我可以给你一套可直接用的规则。