温馨提示×

debian iptables如何转发

小樊
68
2026-09-01 18:25:54
栏目: 智能运维

在 Debian 上使用 iptables 做“转发”一般分几种常见场景。下面按最常用的端口转发(DNAT)讲,并补充系统转发开关和常见注意事项。


一、开启 Linux IP 转发(必须)

iptables 的转发依赖内核 IP Forwarding。

临时开启

sysctl -w net.ipv4.ip_forward=1

永久开启

编辑:

nano /etc/sysctl.conf

添加或修改:

net.ipv4.ip_forward=1

生效:

sysctl -p

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

示例场景

  • 本机 IP:192.168.1.10
  • 目标服务器:10.0.0.5:80
  • 需求:访问 192.168.1.10:8080 → 转发到 10.0.0.5:80

1️⃣ NAT 表 PREROUTING(入站转发)

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

2️⃣ FORWARD 链允许转发

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

3️⃣ 出网做 SNAT(很重要)

否则回包不会回来:

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

三、本机访问本机端口转发(REDIRECT)

仅限 本机访问:

iptables -t nat -A OUTPUT -p tcp --dport 8080 \
  -j REDIRECT --to-port 80

四、查看 & 保存规则

查看

iptables -t nat -L -n -v
iptables -L -n -v

保存(Debian)

apt install iptables-persistent
netfilter-persistent save

或:

iptables-save > /etc/iptables/rules.v4

五、常见坑

✅ 必须开 ip_forward
✅ FORWARD 链不能 DROP
✅ 有回包路径(SNAT / MASQUERADE)
✅ 云服务器注意安全组
✅ 防火墙顺序很重要


六、如果你用的是 nftables(Debian 新版本)

Debian 10+ 默认推荐 nftables,iptables 只是兼容层。

如果你愿意,我可以:

  • 给你 nftables 写法
  • 给你 Docker / K8s 场景
  • 给你 只转发某个 IP
  • 给你 UDP 转发示例

直接说你的使用场景即可。

0 踩