温馨提示×

debian iptables如何 nat 转发

小樊
45
2026-09-13 20:23:50
栏目: 智能运维

在 Debian 上使用 iptables 做 NAT 转发(端口转发 / 地址转换),通常分为几种常见场景。下面按最常用场景逐步说明。


一、开启内核 IP 转发(必须)

NAT 依赖内核转发功能。

临时开启

sysctl -w net.ipv4.ip_forward=1

永久开启

编辑 /etc/sysctl.conf:

net.ipv4.ip_forward=1

生效:

sysctl -p

二、端口转发(DNAT,最常用)

例如:
公网 IP: 1.2.3.4
将 TCP 8080 转发到内网 192.168.1.10:80

1️⃣ PREROUTING(入方向 DNAT)

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80

2️⃣ FORWARD(允许转发)

iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT

3️⃣ POSTROUTING(SNAT,回包用)

iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 80 -j MASQUERADE

三、整机上网(MASQUERADE,最常见)

适用于:

  • Debian 做路由器
  • 内网通过 Debian 上网

假设:

  • 外网网卡:eth0
  • 内网网段:192.168.1.0/24
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

允许转发:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

四、固定 SNAT(有固定公网 IP)

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.4

五、查看 & 删除规则

查看 NAT 表

iptables -t nat -L -n -v

删除某条规则

iptables -t nat -D PREROUTING 1

六、规则持久化(Debian)

安装工具

apt install iptables-persistent

保存规则

netfilter-persistent save

规则保存在:

/etc/iptables/rules.v4

七、常见坑提醒 ⚠️

  1. 必须开启 ip_forward
  2. FORWARD 链默认可能是 DROP
  3. 回包 SNAT 不能少
  4. 云服务器注意 安全组 / 防火墙
  5. 若用 nftables,语法不同

如果你能告诉我:

  • 是 端口转发 还是 共享上网
  • Debian 版本(11 / 12)
  • 网络结构(公网 / 内网)

我可以给你精准的 iptables 规则。

0 踩