Використовуйте разом OpenVPN & eth0


0

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

Мій шлюз LAN - 10.100.98.4 ... Таким чином, для додатків, щоб використовувати моє пряме підключення до Інтернету я зробив

sudo route add default gw 10.100.98.4

Але, я не можу використовувати tun0 зараз. Я знаю це тому

curl - інтерфейс 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

Я на ArchLinux
Abhijeet Rastogi

Відповіді:


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

Щоб зробити це постійним, як root, iptables-save > /etc/iptables/iptables.rules.

Удачі!


[shadyabhi @ archlinux ~] $ sudo iptables -t nat -АПОСТРУТАЦІЯ -s 10.10.98.0/24! -d 10.10.98.0/24 -p tcp --dport 80 -j SNAT - до джерела 10.100.98.4 [shadyabhi @ archlinux ~] $ sudo iptables -t nat -АПОСТРУТАЦІЇ -s 10.10.98.0/24! -d 10.10.98.0/24 -p tcp --dport 443 -j SNAT - до джерела 10.100.98.4 Насправді, я хотів зробити протилежне, відправити весь HTTP і HTTPS трафік через eth0 і відпочити через VPN .. Після цього я зробив $ sudo iptables -L, але правила не відображалися. Чому так?
Abhijeet Rastogi

iptables -L покаже вам лише стандартну таблицю - ви хочете iptables -t nat -L. Щоб зробити протилежне тому, що я сказав, ви можете це зробити iptables -t nat -A POSTROUTING -s 10.10.98.0/24 ! -d 10.10.98.0/24 -p tcp -m multiport ! --dports 80,443 -j SNAT --to-source 10.100.98.4
Andy Smith

Я зробив те, що ви сказали, але мій трафік з браузера йде через VPN. Я двічі перевірив, я зробив $ iptables -L -t nat; показав правило. Що може бути проблемою?
Abhijeet Rastogi

Вибачення - я зробив помилку в попередньому коментарі - замість ! --dports 80,443спробуйте --dports 80,443 - тобто без ! раніше --dports.
Andy Smith
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.