команда 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!
Арій

Я не впевнений, що зможете. Весь світ (ну, крім Windows, який використовує ipconfig та деякі сучасні Linux, які використовують i i i ifconfig), використовує ifconfig. Сюди входить ОС 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.