温馨提示×

centos iptables怎样端口映射

小樊
35
2026-09-05 19:55:20
栏目: 智能运维

在 CentOS 上使用 iptables 做端口映射(端口转发),通常是指 DNAT(目的地址转换)SNAT/MASQUERADE(源地址转换)。下面分常见场景说明。


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

端口映射依赖内核转发:

# 临时生效
echo 1 > /proc/sys/net/ipv4/ip_forward

# 永久生效
vi /etc/sysctl.conf

添加或修改:

net.ipv4.ip_forward = 1

生效:

sysctl -p

二、本机端口映射到本机其他端口

例如:
访问 8080 → 转发到 80

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

如果是本地访问本机:

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

三、端口映射到内网其他机器(DNAT)

例如:
CentOS 公网 IP:1.2.3.4
内网机器:192.168.1.10:80
映射公网 1.2.3.4:8080 → 192.168.1.10:80

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

做 SNAT(让回包正确):

iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 \
-j SNAT --to-source 192.168.1.1

或简化(推荐):

iptables -t nat -A POSTROUTING -j MASQUERADE

四、仅允许特定来源 IP 映射

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

五、保存 iptables 规则(CentOS 6/7)

CentOS 6

service iptables save

CentOS 7(iptables-services)

yum install iptables-services
systemctl enable iptables
iptables-save > /etc/sysconfig/iptables

六、查看与删除规则

查看 NAT 表:

iptables -t nat -L -n --line-number

删除规则(示例):

iptables -t nat -D PREROUTING 1

七、常见问题

✅ 防火墙放行端口

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

✅ CentOS 7 默认 firewalld
建议关闭:

systemctl stop firewalld
systemctl disable firewalld

如果你能说明:

  • CentOS 版本(6 / 7 / 8)
  • 本机映射 还是 跨机映射
  • 内网 / 公网环境

我可以给你 精确命令模板

0