1

Я пытаюсь подключиться к VPN, которая не разрешает доступ HTTP (или любой другой доступ, кроме RDP). В общем, я пытаюсь сказать своему компьютеру:«используйте только PPP0 для RDP (порт xxxx), а для всего остального используйте обычный старый WLAN0». Очевидно, это как-то связано с iptables или маршрутами, но я не могу понять все варианты, и учебники, которые я нашел, слишком расплывчаты для меня. Итак, мой вопрос заключается в следующем:

Как мне указать, что определенные порты используют определенные интерфейсы, в то время как другие порты используют другие интерфейсы для запросов, исходящих из моей системы (Ubuntu 10.04)?

Благодарю.

1 ответ1

1

Проще маршрутизировать, используя IP-адреса. Вам даже не понадобятся iptables. Найдите IP или подсеть, к которой вы хотите получить доступ через ppp0, и добавьте к ней маршрут (/32 для одного ip, меньше для подсети):

sudo ip route add dev ppp0 <ipv4-address>/32

Хотя я удивлен, что ваше программное обеспечение VPN еще не настроило маршрут. Проверьте с ip route show .

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

sudo ip route del $(ip route show dev ppp0 |grep default)

И замените маршрут по умолчанию на wlan0, который вы можете разрешить настройке dhcp, или добавьте явно, если вы знаете ip вашего шлюза или уже можете иметь:

sudo ip route add default via <gateway ip of your wireless lan>

Маршрутизация происходит следующим образом: вы хотите отправить пакет в IP. Если ip, который вы хотите найти, находится на той же ссылке, что и один из ваших интерфейсов, отправьте пакет по этой ссылке. В противном случае найдите самую маленькую подсеть, содержащую этот ip. Эта подсеть имеет адрес шлюза (возможно, адрес по умолчанию, если не определена меньшая подсеть). Вернитесь к шагу 0, используя IP-адрес шлюза.

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