С 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.