команда ip в терминале Mac OS X


64

Я использую команду ip linkв Linux. Теперь я хочу это на Mac OS X, но терминал Mac OS X не имеет ip. Что я должен использовать вместо этого?


Я думаю, что если сообщество Linux хочет, чтобы «ip» заменил «ifconfig», было бы полезно, чтобы «ip» был доступен как в Unix, так и в Linux.
Скотт Скилз

Ответы:


89

Вы можете использовать brewдля установки iproute2mac. На самом деле это оболочка Python, которая предоставляет очень похожий API, который вы, вероятно, найдете очень знакомым для ipинструмента, включенного iproute2в Linux.

Монтаж

$ brew install iproute2mac
==> Installing iproute2mac from brona/homebrew-iproute2mac
==> Downloading https://github.com/brona/iproute2mac/archive/v1.0.3.zip
######################################################################## 100.0%
🍺  /usr/local/Cellar/iproute2mac/1.0.3: 4 files,  24K, built in 2 seconds

использование

После установки вам будет предоставлен инструмент командной строки, который для любых целей имитирует ipкоманду в Linux.

$ ip
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip -V
where  OBJECT := { link | addr | route | neigh }
       OPTIONS := { -4 | -6 }

iproute2mac
Homepage: https://github.com/brona/iproute2mac
This is CLI wrapper for basic network utilities on Mac OS X inspired with iproute2 on Linux systems.
Provided functionality is limited and command output is not fully compatible with iproute2.
For advanced usage use netstat, ifconfig, ndp, arp, route and networksetup directly.

Примеры

Показать IP-адреса на интерфейсе en0.

$ ip addr show en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 54:46:12:fc:45:12
    inet6 fe80::3636:3bff:fecf:1294/64 scopeid 0x4
    inet 192.168.1.5/24 brd 192.168.1.255 en0

Показать подробности о ссылке en1.

$ ip link show en1
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    options=60<TSO4,TSO6>
    ether 72:00:08:81:d2:10
    media: autoselect <full-duplex>
    status: inactive

Рекомендации


6

Используйте обычную команду для UNIX - подобных системах: ifconfig.

(Linux также использует ifconfig, но некоторые инструменты имеют более новые версии. ipЭто одна из них, которая однажды заменит старый ifconfig.)


Как я мог установить эту команду ip на Mac OS? Я хочу, чтобы некоторые функции, такие как добавить MAC-VLAN!
Арий

Я не уверен, что ты можешь. Весь мир (ну, кроме окон, которые используют ipconfig и некоторые современные linux, которые используют ip и ifconfig), использует ifconfig. Это включает в себя OS X. У меня нет Mac для тестирования, но я бы посмотрел на команды vconfig add n0 42(настроить VLAN 42 для сетевого интерфейса EN0), а затем что-то вроде ifconfig en0.5 1.2.3.3 netmask 255.255.128.0 broadcast 1.2.3.255 up.
Хеннес

1
ifconfigвыводит довольно много ненужных строк. Если IP это все, что вам нужно, используйте ifconfig | grep inetвместо этого.
Аксели Пален

Кроме того, ifconfig устарела: google.de/…
oleiade

3

Существует более простой способ без установки каких-либо инструментов:

$ which ifconfig
/sbin/ifconfig

$ ifconfig en0 | grep inet | grep -v inet6 | cut -d ' ' -f2
10.16.45.123

0

В Mac нет команды ip. Получить его из варева или использовать:

ifconfig en0| grep "inet[ ]" | awk '{print $2}'

Вы можете создать псевдоним ~/.bash_profileследующим образом:

alias ip-addr="ifconfig en0| grep \"inet[ ]\" | awk '{print \$2}'"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.