Используйте оба OpenVPN и eth0 вместе

Я подключаюсь к VPN, используя openVPN. Теперь, после того как соединение установлено, весь мой трафик проходит через tun0.

Мой шлюз локальной сети 10.100.98.4... Итак, для приложений, чтобы использовать мое прямое подключение к Интернету, я сделал

sudo route add default gw 10.100.98.4

Но я не могу использовать tun0 сейчас. Я знаю это, потому что

curl --interface tun0 google.com

не дает мне ничего.. Как мне использовать оба соединения одновременно. Как я могу этого достичь?

МАРШРУТНЫЕ СТОЛЫ:-

Без VPN работает:-

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.100.98.0     *               255.255.255.0   U     1      0        0 eth0
default         10.100.98.4     0.0.0.0         UG    0      0        0 eth0

С VPN:-

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.0.1       10.10.54.230    255.255.255.255 UGH   0      0        0 tun0
10.10.54.230    *               255.255.255.255 UH    0      0        0 tun0
free-vpn.torvpn 10.100.98.4     255.255.255.255 UGH   0      0        0 eth0
10.100.98.0     *               255.255.255.0   U     1      0        0 eth0
default         10.10.54.230    0.0.0.0         UG    0      0        0 tun0

После командования маршрута

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.0.1       10.10.54.230    255.255.255.255 UGH   0      0        0 tun0
10.10.54.230    *               255.255.255.255 UH    0      0        0 tun0
free-vpn.torvpn 10.100.98.4     255.255.255.255 UGH   0      0        0 eth0
10.100.98.0     *               255.255.255.0   U     1      0        0 eth0
default         10.100.98.4     0.0.0.0         UG    0      0        0 eth0
default         10.10.54.230    0.0.0.0         UG    0      0        0 tun0

1 ответ

Решение

После добавления маршрута по умолчанию вы сообщаете всему трафику, что вы должны выходить из шлюза, так что вы будете получать только странные вещи.

Если у вас есть конкретная сеть на другом конце вашей VPN, к которой вам нужен доступ, вы хотите добавить определенные маршруты, чтобы указать tun0, Вы можете сделать это вручную, добавив маршруты после прохождения туннеля, или лучше поменять OpenVPN. server.conf файл, чтобы "протолкнуть" вам маршруты, когда появится туннель.

Если вы хотите сделать что-то более сложное - скажем, вы хотите заставить весь трафик портов 80 и 443 пропускать VPN, но все остальное вывести из строя eth0 - тогда вы могли бы использовать iptables источник трафика NAT, соответствующий определенным правилам IP-адресу tun0 что-то вроде этого:

iptables -t nat -A POSTROUTING -s 10.10.98.0/24 -d ! 10.10.98.0/24 -p tcp --dport 80 -j SNAT --to-source 10.10.54.230
iptables -t nat -A POSTROUTING -s 10.10.98.0/24 -d ! 10.10.98.0/24 -p tcp --dport 443 -j SNAT --to-source 10.10.54.230

Чтобы сделать это постоянным, как корень, iptables-save > /etc/iptables/iptables.rules,

Удачи!

Другие вопросы по тегам