无法在 Xubuntu 中编辑 /proc/sys/net/ipv4/ip_forward

无法在 Xubuntu 中编辑 /proc/sys/net/ipv4/ip_forward

我尝试ip_forward从更改01但失败了,即使在 Xubuntu 11.10 中具有 root 权限。我在使用 Ubuntu 11.10 时没有遇到类似的问题

chiaki@chiaki:~$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward 
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

任何想法?

答案1

您无法如此轻松地使用 进行重定向sudo。有几种潜在的解决方案,包括tee

您可以重定向到您作为调用用户所拥有的文件sudo,例如主目录中的文件,但不是系统文件。

例子

# it works when re-direction to a location / file the user has permission to access
ubuntu@ubuntu:~$sudo echo "it works" > ~/file
ubuntu@ubuntu:~$cat file
it works

# But NOT if you do not have permission to access the target
ubuntu@ubuntu:~$sudo echo "it works" > /root/file
-bash: /root/file: Permission denied

选项一

使用sudo bash -c并引用整个命令

sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

选项二

使用tee

echo "1" | sudo tee /proc/sys/net/ipv4/ip_forward

答案2

如果您想更改 中的参数/proc/sys,最好的办法是编辑/etc/sysctl.conf然后运行sysctl -p​​。这样,您的更改将在重启后保留。

答案3

你可以使用这个:

user@ubuntu:~sudo -s 
enter password for sudo:
root@ubuntu:~echo 1 >/proc/sys/net/ipv4/ip_forward :)

答案4

如果您输入以下命令,则只要您不重新启动计算机它就会起作用。

echo 1 >/proc/sys/net/ipv4/ip_forward

一旦重新启动,该参数将恢复为“0”

尝试以下命令,即使重新启动后它也能起作用。

vim /proc/sysctrl.conf ' - uncommen "net.ipv4.ip_forward=1"

sysctl -p 

现在,即使您重新启动机器,IP 转发也将始终启用。

相关内容