Приветствую,
Я использую vpnc
для VPN-клиента. Я также делаю некоторые хитрые вещи, route
чтобы убедиться, что я все еще могу получить доступ к своей локальной сети и т. Д. И т. Д. (Подробности здесь не очень важны).
Иногда я получаю таблицу маршрутизации настолько измученной, что получаю ping: sendto: Network is unreachable
URL-адреса, которые в противном случае должны разрешиться.
В настоящее время, если я перезагружаю Mac OS X, тогда все возвращается к нормальной жизни. То, что я хотел бы сделать, это сбросить таблицы маршрутизации на «по умолчанию» (например, то, что установлено при загрузке) без перезагрузки всей системы.
Я думаю, что шаг 1 route flush
(удалить все маршруты). И шаг 2 должен перезагрузить все маршруты по умолчанию.
Есть мысли о том, как это сделать? (например, что такое шаг 2?)
РЕДАКТИРОВАТЬ
Кроме того, я заметил еще один симптом, который traceroute
также не удается на указанный адрес. Например:
traceroute the.good.dns.name
traceroute: bind: Can't assign requested address
route -n flush
несколько раз, затем просто перезапускал сеть через Системные настройки. Мне потребовался всего год, чтобы вернуться и выяснить это :)Я столкнулся с этой проблемой при использовании домашнего сервера OpenVPN и подключении к нему с помощью приложения Tunnelblick на Mac.
То, что происходило на моем конце, было то, что маршрут с моим домашним IP в качестве пункта назначения и неправильного шлюза становился остатком после отключения от VPN. Удаление этого маршрута решило проблему, просто
Пример: я в школе и после новой загрузки компьютера подключаюсь к беспроводной сети. Я подключаюсь к своему домашнему серверу OpenVPN с Tunnelblick.
Я отключаюсь от VPN-сервера. Я меняю беспроводные сети. Это меняет мой шлюз по умолчанию.
Я не могу ни при каких обстоятельствах подключиться к моей домашней сети (VPN, ping, что угодно) после того, как это произойдет. Если я тогда просто удалю маршрут:
Работает нормально.
Может быть проблема с настройкой сервера / клиента OpenVPN, которая оставляет это (и мне было бы интересно узнать, что это такое), но я установил скрипт пост-разъединения Tunnelblick, который автоматизирует удаление этого маршрута.
источник
Сначала вам нужен маршрут для вашего сетевого интерфейса. Если VPN отключена, просто отключите сетевой интерфейс и снова включите его с помощью ifconfig. Затем используйте маршрут commnand, чтобы встроить gw по умолчанию. Так что-то вроде:
ifconfig en0 down
ifconfig en0 up
route add <ip address> default
источник
Я столкнулся с той же проблемой, что и @Sean (я также использую OS X), потому что при переключении между домашней и рабочей сетями маршрут по умолчанию не удалялся.
Для полноты, когда я подключаюсь к своему VPN дома и запускаю следующую команду, он показывает шлюз по умолчанию, как показано ниже
И когда я отключился, шлюз [home-ip] все еще был бы там. Когда я подключался к своей рабочей сети, я вообще не мог подключиться к Интернету и столкнулся с той же проблемой, что и OP
Затем мне придется вручную удалить маршрут с
Изначально я добавил в
post-disconnect.sh
скрипт «route -n delete» , но это было немного грязно, поэтому вместо этого я нашел эту ссылкуhttps://code.google.com/p/tunnelblick/issues/detail?id=177
Видимо, причина заключается в установке следующего в моем
.ovpn
файлеЭто означает, что маршрут настроен как root, но когда соединение разорвано, пользователь больше не является root, поэтому маршрут не может быть удален.
Комментирование этих 2 строк в моем
.ovpn
файле устранило проблему, без необходимости использоватьpost-disconnect.sh
.источник