Локалка и интернет через 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.