为什么无法更改文件 /proc/sys/net/ipv4/ip_forward?

为什么无法更改文件 /proc/sys/net/ipv4/ip_forward?
$ sudo echo 1 >/proc/sys/net/ipv4/ip_forward 
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

然后我尝试获取写权限,也失败了。

$ sudo chmod a+wx /proc/sys/net/ipv4/ip_forward 
chmod: changing permissions of `/proc/sys/net/ipv4/ip_forward': Operation not permitted

怎么了?

答案1

您正在尝试更改内核值。请确保您正在做什么。

好的,以下是你可以改变的值ip_forward具有 root 权限(sudo -i

  • 首先使用命令检查 ip_forward 的值:sysctl -a | grep ip_forward
  • 现在使用sysctl -w <parameter=value>你改变ip_forward的值:
    • sysctl -w ip_forward=1
  • 使用以下命令在内核中反映这些更改:sysctl -p
  • 再次执行第一步来检查值。

我建议你去sysctl 的手册页

答案2

编辑文件 /etc/sysctl.conf 并编辑此部分:

#net.ipv4.ip_forward = 0

net.ipv4.ip_forward = 1 (remove # sign)

然后输入命令:sysctl -p
最后,重新启动系统。

答案3

要在内核版本 4.4+(Ubuntu 16.04+)中更改此内核值,您需要执行以下操作:

sudo sysctl -w net.ipv4.ip_forward=1

答案4

终端:

sudo nano /proc/sys/net/ipv4 ip_forward

更改后,使用CTRL+保存O并使用CTRL+退出X

相关内容