Существует также ужасное, и непопулярные "воссоздают учетную запись в новом профиле" диагностический шаг, который иногда заставляет проблемы Exchange уйти.
Сначала Вам нужен маршрут для Вашего сетевого интерфейса. Если VPN разъединяется, затем просто удаляют Ваш сетевой интерфейс и затем возвращают его с ifconfig. Затем используйте маршрут commnand для создания в значении по умолчанию gw. Так что-то как:
ifconfig en0 down
ifconfig en0 up
route add <ip address> default
Я столкнулся с этой проблемой во время использования домашнего OpenVPN сервера и подключения к нему с помощью приложения Tunnelblick на Mac.
С моей стороны происходило то, что маршрут с моим домашним IP в качестве адресата и некорректный шлюз получал остатки после отключения от VPN. Удаление этого маршрута решило проблему, просто
$ sudo route -n delete the.good.dns.name
Пример: Я нахожусь в школе и после свежей загрузки компьютера подключаюсь к беспроводной сети. Я подключаюсь к домашнему OpenVPN серверу с помощью Tunnelblick.
$ netstat -nr
Destination Gateway
....
[home-ip]/32 [school-default-gateway-1] ....
....
Я отключаюсь от VPN сервера. Я меняю беспроводную сеть. Это меняет мой шлюз по умолчанию.
$ netstat -nr
Destination Gateway
...
[home-ip]/32 [school-default-gateway-1] ...
...
$ ping [home-ip]
PING [home-ip]: 56 data bytes
ping: sendto: Network is unreachable
ping: sendto: Network is unreachable
Request timeout for icmp_seq 0
...
Я ни при каких обстоятельствах не могу подключиться к домашней сети (VPN, ping, что угодно) после того, как это произойдет. Если я затем просто удалю маршрут:
$ sudo route -n delete [home-ip]
delete net [home-ip]
$ ping [home-ip]
PING [home-ip]: 56 data bytes
64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms
Он работает нормально.
Может быть проблема с тем, как настроен OpenVPN сервер/клиент, который оставляет это (и мне было бы интересно узнать, что это такое), но я установил скрипт Tunnelblick post-disconnect, который автоматизирует это удаление маршрута.
.Я столкнулся с той же проблемой, что и @Sean (я также запустил OS X), в том, что при переключении между домашней и рабочей сетями маршрут по умолчанию не удалялся.
Для полноты, когда я подключаюсь к VPN дома и выполняю следующую команду, он показывает шлюз по умолчанию, как показано ниже
$ netstat -nr
Destination Gateway
...
[home-ip]/32 [work-default-gateway-1]
А когда я отключаюсь, шлюз [home-ip] все еще будет там. Когда я подключался к своей рабочей сети, я вообще не мог подключиться к Интернету и сталкивался с той же проблемой, что и OP
$ traceroute the.good.dns.name
$ traceroute: bind: Can't assign requested address
, мне приходилось вручную удалять маршрут с помощью
$ sudo route -n delete [home-ip]
Изначально я ставил "route -n delete" в сценарий post-disconnect.sh
, но это было немного грязновато, поэтому вместо этого я нашел эту ссылку
https://code.google.com/p/tunnelblick/issues/detail? id=177
Очевидно, причина в том, что в моем файле .ovpn
user nobody
group nogroup
была установлена следующая настройка: маршрут устанавливается как root, но когда соединение прерывается, пользователь больше не является root, поэтому маршрут не может быть удален.
Комментируя эти 2 строки в моем файле .ovpn
, я исправил проблему, без необходимости использовать post-disconnect.sh
.