Mac OS X终端中的ip命令


64

ip link在Linux中使用命令。现在,我想在Mac OS X上使用它,但是Mac OS X终端没有ip。我应该怎么用呢?


我认为,如果Linux社区希望“ ip”代替“ ifconfig”,那么“ ip”在Unix和Linux上都将很有用。
Scott Skiles

Answers:


89

您可以使用brew安装iproute2mac。它实际上是一个Python包装器,提供了非常相似的API,您可能会对Linux ip附带的工具非常熟悉iproute2

安装

$ 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

用法

安装完成后,您将获得一个命令行工具,该工具可以出于所有目的模拟ipLinux上的命令。

$ 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.

例子

在接口en0上显示IP地址。

$ 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的工具。)


我如何在Mac OS上安装此ip命令?我想要一些功能,例如添加MAC-VLAN!
Aryan

我不确定你能做到。整个世界(当然,除了使用ipconfig的Windows和一些同时使用ip和ifconfig的现代linux之外)都使用ifconfig。这包括OSX。我没有要测试的mac,但我会查看命令vconfig add n0 42(为网络接口EN0配置VLAN 42),后跟类似的命令ifconfig en0.5 1.2.3.3 netmask 255.255.128.0 broadcast 1.2.3.255 up
Hennes 2013年

1
ifconfig输出很多不必要的行。如果IP是您所需要的一切,则ifconfig | grep inet改为使用。
AkseliPalén2015年

此外,使用ifconfig被弃用:google.de/...
oleiade


0

Mac中没有ip命令。从酿造或使用中获取:

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

您可以~/.bash_profile按以下方式创建别名:

alias ip-addr="ifconfig en0| grep \"inet[ ]\" | awk '{print \$2}'"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.