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