2

Итак, у меня есть настройка, где eth0 мой внутренний IP-адрес (192.168.1.3) настроен как шлюз по умолчанию с использованием iptables this

sudo sysctl -w net.ipv4.ip_forward = 1

sudo iptables -P FORWARD ACCEPT

sudo iptables –-table nat -A POSTROUTING -o eth2 -j MASQUERADE

Где eth2 мой статический ip для интернета

Это работает нормально, я могу получить доступ к Интернету с любого компьютера в моей сети через DHCP (192.168.1.10-200)

Все перестает работать, когда я запускаю openvpn

Вот мой конфигурационный файл http://pastebin.ubuntu.com/7556511/

Этот конфиг работает без NAT, так как на компьютере я могу просматривать веб-страницы, и если я делаю

curl ifconfig.me

это дает мне удаленный IP-адрес от моего провайдера VPN.

Когда я говорю, что происходит сбой на других компьютерах, я имею в виду, что я не могу загрузить страницы, я не могу пропинговать, ничего не работает вне сети (Но я все еще могу использовать SSH на внутреннем интерфейсе

1 ответ1

2

Ошибка в вашем iptables, команда:

  iptables –-table nat -A POSTROUTING -o eth2 -j MASQUERADE

следует изменить на

 iptables –-table nat -A POSTROUTING -o tun0 -j MASQUERADE

Если ваш интерфейс не называется tun0, пожалуйста, измените его соответствующим образом (кстати, то же самое применимо, если у вас есть интерфейс tap , просто используйте tap0 вместо tun0).

В OpenVPN весь трафик выходит через ваш компьютер через мост, а не через интерфейс Ethernet. Однако вы не можете применить iptables к мосту (который требует ebtables), но вы можете обойти проблему, применяя iptables к виртуальному интерфейсу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .