使用linux系统的iptables进行NAT和端口映射

本文详细介绍了如何在Linux系统中使用iptables进行NAT转换和端口映射。从安装iptables开始,开启路由转发功能,接着通过SNAT配置实现地址伪装,特别是针对多个LAN网段的情况。同时,讲解了DNAT配置来新增和删除端口映射,以及如何查看、编辑和清除iptables的NAT规则,对于网络管理和运维人员具有较高的参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装iptables

yum -y install iptables

2、打开linux的路由转发功能

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

3、iptables配置

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

4、SNAT配置

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source WAN-IP -m comment --comment "LAN1 Source NAT"

有多个LAN网段可以依次添加。
如果WAN地址不是固定IP时,也可以使用公网接口进行地址伪装:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE  -m comment --comment "LAN1 Source NAT"

5、新增端口映射(DNAT)

iptables -t nat -A PREROUTING -p [tcp/udp] -d WAN-IP --dport WAN-PORT -j DNAT --to-destination LAN-IP:LAN-PORT  -m comment --comment "备注"

删除端口映射(即把新增映射的-A改成-D)

iptables -t nat -D PRER
如果您在 Linux 虚拟机中运行着 Windows 系统,想要进行 NAT 端口映射,可以按照以下步骤进行: 1. 首先,在 Linux 主机上安装并启动虚拟机,确保虚拟机可以正常运行。 2. 在 Linux 主机中打开终端,输入以下命令安装 iptables: ``` sudo apt-get install iptables ``` 3. 确认 iptables 已经安装成功,输入以下命令查看 iptables 版本: ``` iptables --version ``` 4. 在 Linux 主机中打开终端,输入以下命令开启 IP 转发功能: ``` sudo sysctl net.ipv4.ip_forward=1 ``` 5. 在 Linux 主机中打开终端,输入以下命令添加 NAT 规则,将主机的 8888 端口映射到虚拟机的 80 端口上: ``` sudo iptables -t nat -A PREROUTING -p tcp --dport 8888 -j DNAT --to-destination 虚拟机IP:80 ``` 其中,虚拟机 IP 是指 Windows 虚拟机的 IP 地址。 6. 在 Linux 主机中打开终端,输入以下命令添加防火墙规则,允许外部主机访问主机的 8888 端口: ``` sudo iptables -A FORWARD -p tcp -d 虚拟机IP --dport 80 -j ACCEPT ``` 7. 在 Windows 虚拟机中打开浏览器,输入主机的 IP 地址 8888 端口号,例如 http://主机IP:8888,即可访问虚拟机的 80 端口。 注意事项: - 请务必将命令中的“虚拟机IP”替换成实际的虚拟机 IP 地址。 - 在防火墙中开放相应的端口,以允许外部主机访问虚拟机。 - 以上命令仅在当前会话中生效。如果您希望永久生效,请将这些命令添加到适当的启动脚本中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值