通过设置 ip_forward 为 1 ,可以开启 Linux 内核的 IP 转发,用下面的命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
执行后,貌似并没有什么用,系统还是没转发。
我用 cat /proc/sys/net/ipv4/ip_forward 反复确认了 N 次,值绝对是 1 ,但系统依然无法转发。
去网上找了好多资料,还有种方法是通过下面的命令:
sysctl -w net.ipv4.ip_forward=1
sysctl -p
经过测试,也不行。
郁闷死了,搞了好久都没搞定。 Debian 系的发行版都可以,就 fedora 不可以,设置了当没设置。求解?
是不是 selinux 在捣乱
iptables -F FORWARD
iptables -A FORWARD -j ACCPET
防火牆允許了嗎?
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD_direct 0 -j ACCEPT
firewall-cmd --reload
搞定了,感谢 ing 。小小地纠正下:最后那个 ACCPET 应该是 ACCEPT
再问下,作为开发者,应该掌握 Linux 下的防火墙和 selinux 配置吗?给服务器做运维是不是都不用 iptables 和 selinux 呢?这两个东西关了对服务器的安全性的影响多大?
這兩方面的內容還算簡單,個人建議有餘力的話花點時間學一下,技不壓身嘛。