cat /proc/sys/net/ipv4/ip_forward 0 解决办法


[root@localhost java]# cat /proc/sys/net/ipv4/ip_forward 0

出于安全考虑,Linux系统默认是禁止数据包转发的。

所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。

配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能

cat /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许。

 

有两种方式可以修改:利用命令一次性完成,并支持重启

  • 利用echo 1 修改

源码:

echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/rc.local \ && echo 1 > /proc/sys/net/ipv4/ip_forward \ && chmod +x /etc/rc.d/rc.local \ && ll /etc/rc.d/rc.local \ && cat /proc/sys/net/ipv4/ip_forward

测试:直接生效,支持重启

[root@localhost java]# echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.d/rc.local \ > && echo 1 > /proc/sys/net/ipv4/ip_forward \ > && chmod +x /etc/rc.d/rc.local \ > && ll /etc/rc.d/rc.local \ > && cat /proc/sys/net/ipv4/ip_forward -rwxr-xr-x. 1 root root 512 Apr  6 11:55 /etc/rc.d/rc.local 1
  • 利用sysctl 修改

源码:

echo "sysctl -w net.ipv4.ip_forward=1" >> /etc/rc.d/rc.local \ && echo "sysctl -p" >> /etc/rc.d/rc.local \ && chmod +x /etc/rc.d/rc.local \ && ll /etc/rc.d/rc.local \ && cat /proc/sys/net/ipv4/ip_forward

测试:重启生效

[root@localhost ~]# echo "sysctl -w net.ipv4.ip_forward=1" >> /etc/rc.d/rc.local \ > && echo "sysctl -p" >> /etc/rc.d/rc.local \ > && chmod +x /etc/rc.d/rc.local \ > && ll /etc/rc.d/rc.local \ > && cat /proc/sys/net/ipv4/ip_forward -rwxr-xr-x. 1 root root 515 Apr  6 11:39 /etc/rc.d/rc.local 0

重启测试:

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward 1

 

bye


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM