rizloff
Локалка

Локалка и интернет через VPN одновременно

2 мин чтения

У многих городских провайдеров устроено так: компьютер получает адрес в локальной сети провайдера, а интернет идет через VPN-подключение (PPTP) к его серверу. Пока VPN не поднят, работает только локалка: хаб, форум, FTP. Поднимаешь VPN, интернет появляется, а локалка пропадает.

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

Сначала узнаем две вещи: шлюз в локальной сети и какие сети провайдер считает локальными. Шлюз видно до подключения VPN. Какие сети локальные, лучше спросить у провайдера или на его форуме. Чаще всего это 10.0.0.0/8, ниже будет он.

Linux

До подключения VPN смотрим маршруты:

ip route

Строка default via 10.20.1.1 dev eth0 значит, что шлюз 10.20.1.1. Добавляем маршрут к локальной сети через него:

su -c 'ip route add 10.0.0.0/8 via 10.20.1.1 dev eth0'

Теперь можно поднимать VPN, локалка останется. Чтобы маршрут не пропадал после перезагрузки, в Fedora его пишем в файл /etc/sysconfig/network-scripts/route-eth0:

10.0.0.0/8 via 10.20.1.1 dev eth0

Он применяется, когда поднимается eth0. У меня eth0 поднимает служба network, NetworkManager на этой машине выключен.

Windows

В командной строке:

route -p add 10.0.0.0 mask 255.0.0.0 10.20.1.1

Ключ -p сохраняет маршрут после перезагрузки. В свойствах VPN-подключения на вкладке «Сеть», в дополнительных настройках протокола TCP/IP, галочку «Использовать основной шлюз в удаленной сети» не снимаем: без нее перестанет ходить интернет.

После этого хаб и форум работают вместе с интернетом, а трафик внутри локалки идет напрямую, мимо VPN.

Что-то не сработало или нашли ошибку — напишите: rizloff@gmail.com или @rizloff в Telegram.