温馨提示×

debian iptables怎么 nat转发

小樊
49
2026-09-07 18:04:07
栏目: 智能运维

在 Debian 上使用 iptables 做 NAT 转发(通常是 SNAT / MASQUERADE 或 DNAT),一般步骤如下。


一、开启内核 IP 转发

编辑配置文件:

sudo nano /etc/sysctl.conf

确保有以下一行(没有就加上):

net.ipv4.ip_forward=1

使配置生效:

sudo sysctl -p

验证:

cat /proc/sys/net/ipv4/ip_forward
# 输出应为 1

二、常见 NAT 场景

场景 1:内网机器通过 Debian 上网(SNAT / MASQUERADE)

假设:

  • Debian 外网网卡:eth0(公网 IP)
  • 内网网卡:eth1(如 192.168.1.0/24)
# 允许转发
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

# NAT 出网(推荐用 MASQUERADE)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

如果公网是固定 IP,可用 SNAT:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 公网IP

场景 2:端口转发(DNAT,外网访问内网服务)

例如:

  • 公网 IP:1.2.3.4
  • Debian 外网网卡:eth0
  • 内网服务器:192.168.1.10:80
# 端口转发
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
  -j DNAT --to-destination 192.168.1.10:80

# 允许转发
iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT

访问:

http://1.2.3.4

场景 3:本机端口转发(REDIRECT,仅本机)

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

三、保存 iptables 规则(Debian)

方法 1:使用 iptables-persistent(推荐)

安装:

sudo apt update
sudo apt install iptables-persistent

保存规则:

sudo netfilter-persistent save

规则保存在:

/etc/iptables/rules.v4

开机自动加载 ✅


四、常用查看命令

# 查看 NAT 表
iptables -t nat -L -n -v

# 查看转发规则
iptables -L FORWARD -n -v

五、简单示例汇总(一键参考)

sysctl -w net.ipv4.ip_forward=1

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 \
  -j DNAT --to-destination 192.168.1.10:22

如果你能说明:

  • Debian 是 网关 / 服务器 / 容器宿主机
  • 是 出网 NAT 还是 端口映射
  • 网卡名称和 IP

我可以给你更精确的配置。

0 踩