Mac os как прописать маршрут

О маршрутизации простыми словами. Как посмотреть, добавить или удалить маршрут в macOS

Я давно заметил, что многих пользователей пугает само слово «маршрутизация». Да чего там говорить про обычных пользователей, когда даже админы (особенно те, кто кроме Windows ничего другого не видели) с трудом понимают что это такое.

И я сейчас не преувеличиваю. Иногда требуется прописать статический маршрут на клиенте, а не на роутере и мне приходилось объяснять не пользователю, а админу зачем это нужно, как это делается и в чём отличие от маршрута по умолчанию.

Мальчик сказал маме: “Я хочу кушать” и мама отправила его к папе.
Мальчик сказал папе: “Я хочу кушать” и папа отправил его назад к маме.
Мальчик сказал маме: “Я хочу кушать” и мама снова отправила его к папе.
Так мальчик бегал туда-обратно, пока не упал.
Что случилось с мальчиком? TTL кончился.

Скажете бессмысленный анекдот? Чтобы его понять нужно изучить как работают сети, а пока давайте объясню простыми словами что такое «маршрутизация» (routing), чтобы это слово вас больше не пугало.

Если вы когда-либо настраивали свой роутер или смотрели свойства подключения к сети, то наверняка видели что кроме адреса вашего компьютера, есть ещё адрес шлюза (ещё одно непонятное слово).

Всё просто. Интернет можно представить как разветвлённую дорожную сеть с кучей направлений. Каждая из дорог может привести куда угодно и не факт что нам туда вообще нужно. Так вот, ваш шлюз — это отправная точка во всемирную сеть, откуда вы начинаете свой путь и, в большинстве случаев, он становится для вас маршрутом по умолчанию.

То есть, когда вы открываете какие-то сайты, качаете торренты или проверяете почту, все ваши данные проходят через устройство с данным адресом. Он знает куда нужно дальше передавать пакеты данных. Таких отправных точек может быть превеликое множество и каждая из них обладает информацией о своём сегменте сети, компьютерах и других устройствах, расположенных за ней. Собственно, маршрутизация — это процесс определения лучшего маршрута.

Когда мы знаем точный маршрут следования (его ещё называют статическим), то можем сразу начать движение по нему, в противном случае используется маршрут по умолчанию, который как бы говорит: всё, что не знаешь, куда послать — шли сюда.

В каком случае может потребоваться указывать статический маршрут? Например, при использовании VPN-соединений, когда не желательно гонять весь трафик в защищённом канале. Но это уже выходит за рамки простого описания, да и про VPN я уже много рассказывал ранее. Кому интересно что это такое, можете почитать тут, а сейчас расскажу как управлять статическими маршрутами на примере macOS (если вы хотите узнать как управлять маршрутами в Windows и Linux, оставляйте комментарии и в одном из следующих постов я постараюсь изложить данную тему подробнее).

Как посмотреть, добавить или удалить маршрут в macOS

Чтобы посмотреть все действующие маршруты, отрываем Терминал и вводим следующую команду:

Добавить статичный маршрут можно следующей командой:

Читайте также:  Вывести содержимое каталога windows командная строка

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 os как прописать маршрут

Anton » 04 фев 2010, 21:38

Маршрутизация в Mac OS X :

Запускаем Terminal (находится в Applications/System Utilities)

(маршрутизация прописывается под root’ом . если нет root-аккаунта — нужно воспользоваться командой sudo, которая, собственно и выполняет root’овые действия)

в строке терминала вводим:

Код: Выделить всё sudo route add -net 192.168.0.0 -netmask 255.255.0.0 [i]ваш_шлюз[/i]
sudo route add -net 213.138.213.0 -netmask 255.255.255.0 [i]ваш_шлюз[/i]
sudo route add -net 80.237.99.224 -netmask 255.255.255.248 [i]ваш_шлюз[/i]

(вместо слова шлюз вписываем ip-адрес шлюза вашей сети)

жмем энтер, после этого потребуется ввести ваш юзерский пароль
после чего прописываем остальные маршруты, пароль вводить в ближайшие 5 минут не потребуется.

Код: Выделить всё sudo route add -net 192.168.0.0 -netmask 255.255.0.0 [i]ваш_шлюз[/i]
sudo route add -net 213.138.213.0 -netmask 255.255.255.0 [i]ваш_шлюз[/i]
sudo route add -net 80.237.99.224 -netmask 255.255.255.248 [i]ваш_шлюз[/i]

(вместо слова шлюз вписываем ip-адрес шлюза вашей сети)

теперь маршрутизация прописана, но, к сожалению, до первой перезагрузки компьютера

С этим мириться не следует, поэтому заставим ее прописываться автоматически:

Запускаем Script Editor (находится в Applications/System Utilities/AppleScript)

Копируем в окно редактора этот нехитрый скрипт:

Код: Выделить всё set LF to ASCII character 10
sudo route add -net 213.138.213.0 -netmask 255.255.255.0 [i]ваш_шлюз[/i]
sudo route add -net 80.237.99.224 -netmask 255.255.255.248 [i]ваш_шлюз[/i]
set yourScr1 to «sudo route add -net 192.168.0.0 -netmask 255.255.0.0 [i]ваш_шлюз[/i]»
set yourScr2 to «sudo route add -net 213.138.213.0 -netmask 255.255.255.0 [i]ваш_шлюз[/i]»
set yourScr3 to «sudo route add -net 80.237.99.224 -netmask 255.255.255.248 [i]ваш_шлюз[/i]»
set passwordStr to «ваш юзерский пароль» as string
set sudoScr to «sudo » & yourScr1 & «; sudo » & yourScr2 & «; sudo » & yourScr3 & » && sudo -k»
do shell script «sudo -v» & «

разумеется,вместо слова шлюз вписываем ip-адрес шлюза вашей сети,
а вместо ваш юзерский пароль — ваш настоящий пароль

теперь можно нажать на кнопку Run и проверить, все-ли вы правильно сделали.
если нет никаких ошибок и маршрут прописан — сохраняем этот скрипт. в текстовом
виде его хранить как-бы несекьюрно, т.к. он содержит ваш пароль, поэтому сохраним его как application — это вполне нормально.

Кладем этот скрипт куда подальше, открываем System Preferences, в разделе System открываем Accounts, выбираем себя (и если есть и необходимо — других юзеров), переходим в закладку Startup Items, и добавляем туда готовый скрипт (можно просто перетащить мышкой), и ставим напротив в чекбоксе галку, чтобы не мозолил глаза в доке при исполнении.

Теперь при каждом стартапе системы маршрутизация будет прописана автоматически

Еще есть способ — можно в настройках Network, а в частности в Network port configurations, наклонировать Built-in Ethernet в 5 экземплярах с помощью кнопки Duplicate, и в каждом из пяти прописать ip и шлюзы . я не пробовал.

А самый лучший способ — обзавестить роутером с поддержкой маршрутизации, дабы каждый раз
не поднимать vpn-соединение с помощью Internet connect, что всем и рекомендую.

Читайте также:  Пропал значок для обновления windows 10

Источник

Маршрутизация в 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.

Источник

Как направить IP-маршрут через определенный интерфейс в OS X?

Я на Mac и пытаюсь маршрутизировать определенный адрес через определенный шлюз на моем Wi-Fi-соединении.

Иногда это будет работать, а иногда — нет. Я обнаружил, что интерфейс, который он выбирает, каждый раз отличается. Это не должно быть en0 чтобы работать

Вывод netstat -nr когда он не работает:

Это когда это работает: (примечание en0)

Почему я это делаю? Потому что у нашей компании есть прокси, на котором HipChat не работает. Таким образом, я маршрутизирую трафик hipchat через открытую сеть Wi-Fi, все еще находясь в моей сети Ethernet.

Я также попытался добавить запись, используя только интерфейс

HipChat не может подключиться.

РЕДАКТИРОВАТЬ 2: Кто-то попросил всю мою таблицу маршрутизации, вот она сегодня. Обратите внимание, что 54.81.143.201 теперь связан с en3, а не en0

8 ответов 8

Как указали другие, это на самом деле 3 проблемы.

Ваш беспроводной интерфейс, кажется, меняется между en0, en3 и en5.

На моем MacBook Air en0 всегда беспроводная; Thunderbolt-to-Ethernet всегда en3, а USB-to-Ethernet всегда en5. Но если вы подключите адаптер к другому порту на вашем Mac, то имя его сетевой карты изменится. Вы должны решить это в первую очередь. Убедитесь, что ваше беспроводное устройство всегда имеет одно и то же имя. В противном случае при вводе команды статического маршрута, если в расположение en0 не подключен сетевой адаптер , команда (очевидно) завершится с ошибкой адреса (физический адрес не имеет связи).

Читайте также:  Удаление avast с компьютера полностью windows

Также убедитесь, что адаптер всегда подключается к одному и тому же SSID. Очевидно, адрес шлюза должен быть действительным для подсети, и разные сети WiFi будут иметь разные подсети. Это может вызвать другой тип ошибки.

Вы не указали, является ли беспроводное соединение единственным сетевым подключением. Учитывая вышесказанное, я думаю, нет . Это и виртуальные сети из-за VMware или Parallels могут вызвать дополнительные сложности. (Например, если обе подключенные сети используют одно и то же пространство IP . Виртуальные машины часто соединяются и имеют свои собственные IP-адреса / маршруты / ссылки . ) Размещение топологии сети поможет.

После этого попробуйте либо sudo route add -host 54.81.143.201 -iface en0 либо sudo ipfw . Если вы не уверены в имени адаптера, вы можете вместо этого указать его MAC-адрес, например: sudo route add -host 54.81.143.201 -link 14:10:9f:e7:fd:0a

Если вы перезагрузитесь, это может не сохраняться. Вам нужно будет справиться с этим отдельно.

Источник

taldanzig / osxvpnrouting.markdown

Routing tips for VPNs on OS X

When VPNs Just Work™, they’re a fantastic way of allowing access to a private network from remote locations. When they don’t work it can be an experience in frustration. I’ve had situations where I can connect to a VPN from my Mac, but various networking situations cause routing conflicts. Here are a couple of cases and how I’ve been able to get around them.

Case 1: conflicting additional routes.

In this example the VPN we are connecting to has a subnet that does not conflict with our local IP, but has additional routes that conflict in some way with our local network’s routing. In my example the remote subnet is 10.0.x.0/24, my local subnet is 10.0.y.0/24, and the conflicting route is 10.0.0.0/8. Without the later route, I can’t access all hosts on the VPN without manually adding the route after connecting to the VPN:

In the above case the VPN is a PPTP VPN that uses ppp0 as the network interface. With this additional route, I can now access all the hosts I need to on the VPN. This won’t solve the case of trying to access addresses on the 10.0.y.0/24 subnet though.

Case 2: conflicting subnet between VPN and local network.

Fairly often a VPN on a private address space subnet can end up conflicting with a local subnet. For example if both the remote and local networks share the 192.168.0.0/24 subnet then our VPN connection ends up being pretty useless as all of the remote addresses will end up being routed to the local network device.

It is possible to get around this in some cases as long as the VPN IP address doesn’t conflict directly with a local IP address that you need access to. In this case we need to add a specific route for the remote IP:

In the above case I’m routing the host 192.168.0.x (replace the x with your specific address) via the tun0 device (in this case an OpenVPN connection).

Useful commands to debug routing issues.

The following command will show the existing routing table (IPv4 only):

The following command will show you how a specific host will get routed:

Источник

Оцените статью