在 Gateway Linux 上进行网络地址转换(NAT)通常涉及配置防火墙规则,例如使用 iptables 或 nftables。以下是一些基本步骤,以说明如何在 Gateway Linux 上设置 NAT:
启用 IP 转发:
编辑 /etc/sysctl.conf
文件,确保以下行未被注释:
net.ipv4.ip_forward=1
然后运行以下命令使更改生效:
sudo sysctl -p
配置 iptables 进行 SNAT 和 DNAT:
SNAT(源地址转换):将内部私有 IP 地址转换为公共 IP 地址。
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这里 eth0
是连接到外部网络的接口名称。
DNAT(目标地址转换):将到达公共 IP 地址的流量转发到内部私有 IP 地址。
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
这里 192.168.1.100
是内部私有 IP 地址和端口。
保存 iptables 规则:
为了防止重启后规则丢失,可以保存规则到 /etc/iptables/rules.v4
文件:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
设置 iptables 规则在启动时自动加载:
编辑 /etc/network/if-pre-up.d/iptables
文件,添加以下内容:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables/rules.v4
确保文件权限正确:
sudo chmod +x /etc/network/if-pre-up.d/iptables
安装 nftables: 如果系统尚未安装 nftables,可以使用以下命令安装:
sudo apt-get install nftables
配置 nftables 进行 SNAT 和 DNAT:
SNAT:
sudo nft add table ip nat
sudo nft add chain ip nat prerouting { type nat hook prerouting priority 0 \; }
sudo nft add rule ip nat prerouting oifname "eth0" masquerade
DNAT:
sudo nft add table ip nat
sudo nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }
sudo nft add rule ip nat postrouting iifname "eth0" tcp dport 80 dnat to 192.168.1.100:80
保存 nftables 规则:
为了防止重启后规则丢失,可以保存规则到 /etc/nftables.conf
文件:
sudo nft list ruleset > /etc/nftables.conf
设置 nftables 规则在启动时自动加载:
编辑 /etc/rc.local
文件(如果不存在则创建),添加以下内容:
#!/bin/sh -e
/usr/sbin/nft -f /etc/nftables.conf
确保文件权限正确:
sudo chmod +x /etc/rc.local
通过以上步骤,您可以在 Gateway Linux 上配置网络地址转换(NAT)。请根据您的具体需求和环境调整配置。