我尝试ip_forward
从更改0
为1
但失败了,即使在 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 转发也将始终启用。