在 Debian 上用 iptables 做 NAT(通常是 SNAT / MASQUERADE),一般步骤如下:
编辑配置:
sudo nano /etc/sysctl.conf
添加或取消注释:
net.ipv4.ip_forward=1
生效:
sudo sysctl -p
确认:
cat /proc/sys/net/ipv4/ip_forward
输出应为 1
适用于 动态 IP(如拨号、DHCP)
# 清空旧规则(可选)
iptables -F
iptables -t nat -F
# 允许转发
iptables -P FORWARD ACCEPT
# 做 NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
eth0是 出口网卡(连外网的)
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 1.2.3.4
1.2.3.4 是你的公网 IP
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
eth1是 内网网卡
把外网 8080 转到内网 192.168.1.10:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 \
-j DNAT --to-destination 192.168.1.10:80
iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save
重启自动生效。
# 查看 NAT 规则
iptables -t nat -L -n -v
# 查看转发
iptables -L FORWARD -n -v
确认:
如果你愿意,可以告诉我:
我可以给你一份精确可直接用的规则。