Выберите исходный интерфейс для PPTP VPN в Ubuntu

0

У меня есть гостевая Ubuntu Virtualbox с двумя сетевыми интерфейсами, eth0 (NAT) и eth1 (мост).

Я хочу подключиться к PPTP VPN с использованием eth1, но я не знаю, как указать, какой интерфейс использовать. Если я просто попробую:

sudo pon myvpn nodetach

Это терпит неудачу с:

Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
Modem hangup
Connection terminated.

Глядя на маршруты с, routeкажется, указывает на то eth0, что используется:

x.x.x.x.no 10.0.2.2        255.255.255.255 UGH   0      0        0 eth0
Emyl
источник

Ответы:

1

Клиент PPTP будет использовать маршрутизацию ядра Linux для выбора интерфейса, из которого будет исходить трафик. Если вы хотите убедиться, что используется определенный интерфейс, наилучший маршрут к конечной точке VPN должен быть через этот интерфейс.

Теун Винк
источник
1

Ответ Teun Vink верен, но он также очень ограничен: для передачи VPN-трафика через eth1 его решение направляет весь трафик через eth1.

Вместо этого можно оставить свои опции открытыми, добавив в таблицу маршрутизации специальные опции, которые позволяют маршрутизировать только некоторый вид трафика через eth1.

Прежде всего, вы можете использовать --localbindопцию для pptp, чтобы указать, какой интерфейс использовать. Например, если ваша карта eth1 имеет IP 192.168.1.15, вызовите pptp следующим образом:

 pptp --localbind 192.168.1.15 ...

(или изменив файл myvpn), вы подключитесь к VPN с помощью интерфейса eth1.

Теперь вы указываете, что вы хотите, чтобы трафик только в удаленную локальную сеть проходил через VPN, и ничего больше. Вы достигаете этого, говоря:

sudo route add -net 192.168.50.0/24 dev ppp0

где я предположил, что LAN за VPN-сервером - 192.168.50.0/24

Если вы хотите, чтобы трафик на конкретный сайт с IP-адресом xx.yy.ww.zz проходил через VPN, вы можете сказать:

sudo route add -host xx.yy.ww.zz dev ppp0

С помощью этих команд трафик, который вы явно выбрали для маршрутизации через VPN, будет использовать его, весь оставшийся трафик будет направляться за пределы VPN. И вы можете использовать как eth0, так и eth1 для маршрутизации другого трафика вне VPN.

MariusMatutiae
источник
Я не думаю, что вы отвечаете на его вопросы. Как я читаю вопрос, он спрашивает, как маршрутизировать трафик на VPN-сервер через определенный интерфейс на своей машине, а не как маршрутизировать определенный трафик через интерфейс VPN.
Теун Винк
Я не согласен. Он спрашивает «как указать, какой интерфейс использовать». Это то, что делает первая часть моего ответа, --localbind. Остальная часть ответа показывает, что есть альтернативы маршрутизации всего через VPN.
MariusMatutiae