С вашим правилом брандмауэра NAT все в порядке, но по умолчанию Ubuntu не пересылает пакеты, поэтому вам нужно включить это с помощью:
echo 1 > /proc/sys/net/ipv4/ip_forward
Чтобы сделать это автоматически, вы можете использовать такой скрипт (сохраните в /etc/init.d/your-script
):
#!/bin/sh
# turn ip_forward on/off
case "$1" in
'start')
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
'stop')
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0
И сделать его исполняемым и запустить при загрузке с:
sudo chmod +x /etc/init.d/your-script
sudo update-rc.d your-script defaults
Чтобы включить: sudo /etc/init.d/your-script start
и sudo /etc/init.d/your-script stop
чтобы отключить.
ОБНОВЛЕНИЕ: Как прокомментировал Пол, если вы предпочитаете сделать его постоянным (или, если вам удобно редактировать файл conf, чтобы включить / выключить эту функцию), вы можете изменить /etc/sysctl.conf
и раскомментировать строку с net.ipv4.ip_forward=1
чтобы включить и закомментировать, чтобы отключить.