- Маршрутизация в Mac OS при VPN подключении
- О маршрутизации простыми словами. Как посмотреть, добавить или удалить маршрут в macOS
- Как посмотреть, добавить или удалить маршрут в macOS
- Как перезагрузить таблицу маршрутизации Mac OSX по умолчанию без перезагрузки
- 4 ответа
- Стирание и переустановка macOS
- Как перезагрузить таблицу маршрутизации Mac OSX по умолчанию без перезагрузки
Маршрутизация в Mac OS при VPN подключении
Появилась как-то задача подключатся по VPN к рабочей сети, чтобы иметь доступ к внутренним ресурсам.
Средствами Мака это можно сделать создав VPN подключение и 2 варианта:
1. поставить галочку «Слать весь трафик через VPN подключение»
2. статически прописать статически route add -net 192.168.10.0/24 192.168.44.1, где 192.168.10.0/24 — сеть в которой находятся компьютеры на работе, 192.168.44.1 VPN шлюз к которому я подключаюсб.
Итак после каждого подключения нужно делать вторую манипуляцию, так как общий доступ в интернет ограничен и скорость не ахты. Или задача состоит в том чтобы ходить на сайты (например youtube) через более быстрый канал VPN…
Итак задачу я решил следующим образом:
создал скрипт: touch /etc/ppp/ip-up
дал ему прав на исполнение: chmod +x /etc/ppp/ip-up
создал файл для логов: touch /tmp/ppp.log
Содержимое скрипта:
#!/bin/sh
VPNWORK=»192.168.44.1″; #обьявляем переменную (например по названию VPN подключения)
if [ $IPREMOTE = $VPNWORK ] #проверяем, если совпадает добавляем маршрут
then
/sbin/route -n add -net 192.168.10.0/24 $IPREMOTE > /tmp/ppp.log 2>&1
fi
Таким образом после подключения к сети добавляется маршрут, и нет необходимости добавлять его вручную, так-же при отключении от VPN он удаляется сам.
При необходимости добавлять DNS сервер можно дописать текст между then и fi:
echo «nameserver 4.2.2.1» > /etc/resolv.conf
Вместо 4.2.2.1 укажите свой основной DNS и второй записью рабочий.
Но при этом после отключения нам надо вернуть предыдущий DNS конфиг на место, для этого создаем: touch /etc/ppp/ip-down && chmod +x /etc/ppp/ip-down
Перед началом работы делаем бекап:
cp /etc/resolv.conf /etc/resolv.conf_original
и добавляем в скрипт /etc/ppp/ip-down:
#!/bin/sh
cat /etc/resolv.conf_original > /etc/resolv.conf
Собственно всё. При каждом подключении VPN прописывается маршрут, работаете сколько надо, после отключения удаляется, при этом у вас не будет загвоздок с DNS.
Источник
О маршрутизации простыми словами. Как посмотреть, добавить или удалить маршрут в macOS
Я давно заметил, что многих пользователей пугает само слово «маршрутизация». Да чего там говорить про обычных пользователей, когда даже админы (особенно те, кто кроме Windows ничего другого не видели) с трудом понимают что это такое.
И я сейчас не преувеличиваю. Иногда требуется прописать статический маршрут на клиенте, а не на роутере и мне приходилось объяснять не пользователю, а админу зачем это нужно, как это делается и в чём отличие от маршрута по умолчанию.
Мальчик сказал маме: “Я хочу кушать” и мама отправила его к папе.
Мальчик сказал папе: “Я хочу кушать” и папа отправил его назад к маме.
Мальчик сказал маме: “Я хочу кушать” и мама снова отправила его к папе.
Так мальчик бегал туда-обратно, пока не упал.
Что случилось с мальчиком? TTL кончился.
Скажете бессмысленный анекдот? Чтобы его понять нужно изучить как работают сети, а пока давайте объясню простыми словами что такое «маршрутизация» (routing), чтобы это слово вас больше не пугало.
Если вы когда-либо настраивали свой роутер или смотрели свойства подключения к сети, то наверняка видели что кроме адреса вашего компьютера, есть ещё адрес шлюза (ещё одно непонятное слово).
Всё просто. Интернет можно представить как разветвлённую дорожную сеть с кучей направлений. Каждая из дорог может привести куда угодно и не факт что нам туда вообще нужно. Так вот, ваш шлюз — это отправная точка во всемирную сеть, откуда вы начинаете свой путь и, в большинстве случаев, он становится для вас маршрутом по умолчанию.
То есть, когда вы открываете какие-то сайты, качаете торренты или проверяете почту, все ваши данные проходят через устройство с данным адресом. Он знает куда нужно дальше передавать пакеты данных. Таких отправных точек может быть превеликое множество и каждая из них обладает информацией о своём сегменте сети, компьютерах и других устройствах, расположенных за ней. Собственно, маршрутизация — это процесс определения лучшего маршрута.
Когда мы знаем точный маршрут следования (его ещё называют статическим), то можем сразу начать движение по нему, в противном случае используется маршрут по умолчанию, который как бы говорит: всё, что не знаешь, куда послать — шли сюда.
В каком случае может потребоваться указывать статический маршрут? Например, при использовании VPN-соединений, когда не желательно гонять весь трафик в защищённом канале. Но это уже выходит за рамки простого описания, да и про VPN я уже много рассказывал ранее. Кому интересно что это такое, можете почитать тут, а сейчас расскажу как управлять статическими маршрутами на примере macOS (если вы хотите узнать как управлять маршрутами в Windows и Linux, оставляйте комментарии и в одном из следующих постов я постараюсь изложить данную тему подробнее).
Как посмотреть, добавить или удалить маршрут в macOS
Чтобы посмотреть все действующие маршруты, отрываем Терминал и вводим следующую команду:
Добавить статичный маршрут можно следующей командой:
sudo route -n add 192.168.10.0/24 10.8.0.9
Здесь мы указали что для доступа к сети 192.168.10.0 с маской 255.255.255.0 (24) следует использовать шлюз 10.8.0.9.
Теперь удалим созданный статичный маршрут:
sudo route -n delete 192.168.10.0/24 10.8.0.9
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Источник
Как перезагрузить таблицу маршрутизации Mac OSX по умолчанию без перезагрузки
Я использую vpnc для VPN-клиента. Я также делаю некоторые сложные вещи с помощью route , чтобы убедиться, что я все еще могу получить доступ к своей локальной сети и т. Д. И т. Д. (Подробности здесь не очень важны).
Иногда я получаю таблицу маршрутизации таким образом, что я получаю ping: sendto: Network is unreachable для URL-адресов, которые в противном случае разрешаются.
В настоящее время, если я перезапущу Mac OS X, все возвращается к норме. То, что я хотел бы сделать, — сбросить таблицы маршрутизации на «по умолчанию» (например, на то, что он установлен при загрузке) без для всей системы.
Я думаю, что шаг 1 — это route flush (для удаления всех маршрутов). Шаг 2 должен перезагрузить все маршруты по умолчанию.
Любые мысли о том, как это сделать? (например, что такое шаг 2?)
ИЗМЕНИТЬ Кроме того, я замечаю, что другой симптом traceroute также не работает на указанном адресе. Например:
traceroute: bind: Can’t assign requested address
4 ответа
Вам нужно очистить маршруты. Используйте route -n flush несколько раз. Затем добавьте свои маршруты с добавлением маршрута.
Я столкнулся с этой проблемой при использовании домашнего сервера OpenVPN и подключился к нему с помощью приложения Tunnelblick на Mac.
Что происходит с моей стороны, так это то, что маршрут с моим домашним IP-адресом в качестве адресата и неправильным шлюзом оставался после отключения от VPN. Удаление этого маршрута решило проблему, просто
Пример: я нахожусь в школе и после новой загрузки компьютера подключаюсь к беспроводной сети. Я подключаюсь к моему домашнему серверу OpenVPN с помощью Tunnelblick.
Я отключусь от VPN-сервера. Я меняю беспроводные сети. Это изменяет мой шлюз по умолчанию.
Я не могу ни при каких обстоятельствах подключиться к моей домашней сети (VPN, ping, что-либо) после этого. Если я просто удалю маршрут:
Он отлично работает.
Возможно, возникла проблема с тем, как настроен сервер /клиент OpenVPN, который уходит от него (и мне было бы интересно узнать, что это такое), но я установил сценарий post-disconnect Tunnelblick, который автоматизирует удаление этого маршрута .
Сначала вам нужен маршрут для сетевого интерфейса. Если VPN отключен, просто снимите сетевой интерфейс и верните его с помощью ifconfig. Затем используйте команду commnand для построения в вашем gw по умолчанию. Так что-то вроде:
ifconfig en0 down
ifconfig en0 up
route add default
Я столкнулся с той же проблемой, что и @Sean (я также использую OS X), поскольку при переключении между домашними и рабочими сетями маршрут по умолчанию не удалялся.
Для полноты, когда я подключаюсь к своей VPN дома и выполняю следующую команду, он будет показывать шлюз по умолчанию, как показано ниже
И когда я отключусь, шлюз [home-ip] все равно будет там. Когда я подключился к своей рабочей сети, я вообще не смог подключиться к Интернету и столкнулся с той же проблемой, что и OP
Мне пришлось бы вручную удалить маршрут с помощью
Первоначально я помещал «route -n delete» в сценарий post-disconnect.sh , но это было немного грязно, поэтому вместо этого я нашел эту ссылку
По-видимому, причина связана с установкой следующего в моем файле .ovpn
Это означает, что маршрут настроен как root, но когда соединение выполняется, пользователь больше не является root, поэтому маршрут не может быть удален.
Источник
Стирание и переустановка macOS
Можно восстановить заводские настройки Mac. Для этого выполните стирание Mac, а затем переустановите macOS, используя встроенную систему восстановления Mac — режим восстановления macOS.
Важно! При стирании тома вся информация с него удаляется. Перед этим создайте резервную копию необходимых файлов и информации на запасном устройстве.
Ваш компьютер должен быть подключен к интернету. При выполнении переустановки на ноутбуке Mac подключите адаптер питания к сети питания.
Запустите компьютер в режиме восстановления macOS.
На Mac с процессором Apple. Выберите меню Apple
> «Выключить», нажмите и удерживайте кнопку питания, пока не появится надпись «Загрузка параметров запуска», выберите «Параметры», нажмите «Продолжить», затем следуйте инструкциям на экране.
На Mac с процессором Intel. Выберите пункт меню «Apple»
> «Перезагрузить» и сразу же нажмите и удерживайте сочетание клавиш Command-R.
В окне приложения «Восстановление» выберите «Дисковая утилита», затем нажмите «Продолжить».
В боковом меню Дисковой утилиты выберите том, который нужно стереть, и нажмите кнопку «Стереть» на панели инструментов.
Введите имя тома, нажмите меню «Формат» и выберите APFS, а затем нажмите «Стереть группу томов».
Когда операция будет выполнена, нажмите «Готово», затем выберите «Дисковая утилита» > «Завершить Дисковую утилиту».
В окне приложения «Восстановление» выберите «Переустановить macOS Big Sur», нажмите «Продолжить», затем следуйте инструкциям на экране.
Источник
Как перезагрузить таблицу маршрутизации Mac OSX по умолчанию без перезагрузки
Я использую vpnc для VPN-клиента. Я также делаю некоторые хитрые вещи, route чтобы убедиться, что я все еще могу получить доступ к своей локальной сети и т. Д. И т. Д. (Подробности здесь не очень важны).
Иногда я получаю таблицу маршрутизации настолько измученной, что получаю ping: sendto: Network is unreachable URL-адреса, которые в противном случае должны разрешиться.
В настоящее время, если я перезагружаю Mac OS X, тогда все возвращается к нормальной жизни. То, что я хотел бы сделать, это сбросить таблицы маршрутизации на «по умолчанию» (например, то, что установлено при загрузке) без перезагрузки всей системы.
Я думаю, что шаг 1 route flush (удалить все маршруты). И шаг 2 должен перезагрузить все маршруты по умолчанию.
Есть мысли о том, как это сделать? (например, что такое шаг 2?)
РЕДАКТИРОВАТЬ Кроме того, я заметил еще один симптом, который traceroute также не удается на указанный адрес. Например:
traceroute: bind: Can’t assign requested address
Вам необходимо промыть маршруты. Используйте route -n flush несколько раз. Затем добавьте ваши маршруты с маршрутом добавить.
Я столкнулся с этой проблемой при использовании домашнего сервера OpenVPN и подключении к нему с помощью приложения Tunnelblick на Mac.
То, что происходило на моем конце, было то, что маршрут с моим домашним IP в качестве пункта назначения и неправильного шлюза становился остатком после отключения от VPN. Удаление этого маршрута решило проблему, просто
Пример: я в школе и после новой загрузки компьютера подключаюсь к беспроводной сети. Я подключаюсь к своему домашнему серверу OpenVPN с Tunnelblick.
Я отключаюсь от VPN-сервера. Я меняю беспроводные сети. Это меняет мой шлюз по умолчанию.
Я не могу ни при каких обстоятельствах подключиться к моей домашней сети (VPN, ping, что угодно) после того, как это произойдет. Если я тогда просто удалю маршрут:
Может быть проблема с настройкой сервера / клиента OpenVPN, которая оставляет это (и мне было бы интересно узнать, что это такое), но я установил скрипт пост-разъединения Tunnelblick, который автоматизирует удаление этого маршрута.
Источник