我正在使用 RHEL 8,并尝试使用防火墙命令设置 NAT/MASQUERADE。到目前为止,我拥有公共区域中的所有网络接口和服务。eno8303 是内部网卡,eno8403 是外部网卡。这是我的程序,但我无法让它工作:-
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -o eno8303 -j MASQUERADE sudo firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i eno8403 -m state --state ESTABLISHED,RELATED -j ACCEPT
编辑 /etc/sysctl.conf 以包含设置
net.ipv4.ip_forward = 1
然后 sysctl -p /etc/sysctl.conf
期望能够使用服务器作为内部网关但什么也没有发生。
答案1
您的配置有问题,您应该使用外部 NICeno8403
作为输出接口,而不是内部 NIC。
解决方法如下:首先设置 NAT,sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -o eno8403 -j MASQUERADE
然后设置转发规则
sudo firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i eno8303 -o eno8403 -j ACCEPT
sudo firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i eno8403 -o eno8303 -m state --state ESTABLISHED,RELATED -j ACCEPT
然后重新加载sudo firewall-cmd --reload
然后转到/etc/sysctl.conf
并添加
net.ipv4.ip_forward = 1
然后你申请,它应该有效sudo sysctl -p /etc/sysctl.conf