- 安装firewalld
在CentOS 7上,firewalld是默认安装的。如果没有安装,可以使用以下命令进行安装:
sudo yum install firewalld
- 启动并开机启动firewalld
使用以下命令启动firewalld服务,并将其设置为开机启动:
sudo systemctl start firewalld
sudo systemctl enable firewalld
- 配置NAT转发规则
首先,需要修改firewalld的配置文件/etc/firewalld/zones/public.xml,添加转发规则:
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to which this zone is applied.</description>
<service name="ssh"/>
<masquerade/>
<forward-port port="80" protocol="tcp" to-port="8080"/>
<forward-port port="443" protocol="tcp" to-port="8443"/>
</zone>
上述配置中,添加了HTTP和HTTPS的端口转发规则,其中80端口被转发到8080端口,443端口被转发到8443端口。
注意:添加这些规则后,firewalld需要重新加载才能生效,执行以下命令:
sudo firewall-cmd --reload
- 设置IP转发
为了使NAT转发生效,需要开启IP转发功能。编辑/etc/sysctl.conf文件,取消注释以下行:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
保存文件后,执行以下命令使设置生效:
sudo sysctl -p
- 配置iptables
最后一步是配置iptables,以实现NAT转发。使用以下命令进行配置:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
其中,eth0是本地网络接口的名称。如果您不确定接口名称,请使用以下命令查看:
ifconfig
- 完成
现在,您可以测试是否可以通过NAT转发上网了。如果一切正常,则应该能够成功访问互联网。