Скорее всего, происходит то, что установление VPN изменяет вашу таблицу маршрутизации, так что теперь ответ на ваше удаленное местоположение проходит через VPN-сервер. Но поскольку ваша удаленная позиция пыталась связаться с вашим домом, а не с вашим VPN-сервером, она будет отбрасывать ответы, поступающие через VPN-сервер.
Вы можете решить эту проблему, установив одновременно с VPN маршрут к удаленной станции, которая не использует VPN-сервер. Например, предположим, что ваша удаленная станция имеет IP-адрес 1.1.1.1, ваш обычный домашний шлюз / маршрутизатор - 192.168.0.1, а ваш VPN перенаправляет все через VPN-сервер в 2.2.2.2. Тогда вам нужно, чтобы VPN установил следующий новый маршрут:
ip route add 1.1.1.1/32 via 192.168.0.1 dev eth0
Проблема с этим заключается в том, что вы должны сделать это перед настройкой VPN. Большинство известных мне VPN оставляют эти чрезвычайно специфические маршруты на месте, поэтому вы можете попробовать следующий порядок действий:
Дайте команду выше;
запустить свой VPN;
скрести пальцы.
Если это не работает (потому что VPN полностью переписывает вашу таблицу маршрутизации), вам следует попробовать, как sudo:
cmd_VPN; sleep 10; ip route add 1.1.1.1/32 via 192.168.0.1 dev eth0
где cmd_VPN
- это любая команда, которую вы используете для настройки вашего VPN-соединения. Преимущество этого состоит в том, что новый маршрут, который вам нужен, устанавливается после запуска VPN. Спящий sleep 10
необходим, чтобы позволить VPN изменять таблицу маршрутизации. В течение 10 секунд вы будете отрезаны, но openssh вполне способен противостоять этому.
Вы не можете проверить это изнутри вашей локальной сети: нормальный маршрут для локальной сети всегда остается на месте всеми VPN, поэтому вышеупомянутый трюк будет работать, несмотря ни на что.