Я подключаюсь к 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 ответ1

1

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

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

Если вы хотите сделать что-то немного более сложное - скажем, вы хотите заставить весь трафик портов 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

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

Удачи!

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