На этот вопрос уже есть ответ здесь:
Я пытаюсь изменить ip_forward
с 0
на 1
, но не могу, даже с правами root в Xubuntu 11.10. У меня нет такой похожей проблемы при использовании Ubuntu 11.10
chiaki@chiaki:~$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
есть идеи?
Вы не можете перенаправить так легко с 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
Если вы хотите изменить параметры в /proc/sys
, лучше всего отредактировать /etc/sysctl.conf
, а затем запустить sysctl -p
. Таким образом, ваши изменения сохранятся при перезагрузке.
Вы можете использовать это:
user@ubuntu:~sudo -s
enter password for sudo:
root@ubuntu:~echo 1 >/proc/sys/net/ipv4/ip_forward :)
Если вы введете следующую команду, она будет работать, если вы не перезагрузите компьютер.
echo 1 >/proc/sys/net/ipv4/ip_forward
после перезагрузки параметр вернется к «0»
Попробуйте следующую команду, и она будет работать даже после перезагрузки.
vim /proc/sysctrl.conf ' - uncommen "net.ipv4.ip_forward=1"
sysctl -p
теперь, даже когда вы перезагружаете свою машину, IP-переадресация всегда будет включена.