それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

macOSに Linux の ip ( iproute ) コマンドを入れてしまうという邪教

mac でも ip / iproute2 コマンドを使いたい。

ついつい、癖で ip route show って打ち込んでしまうんですよ。

旧き良きBSDなんだし ifconfig / netstat を使えばいいんだけど、 netstat -nr って覚えにくいじゃないですか。

iproute のフリをするショートカット集が用意されている

ip コマンドを出来る限り、 mac 用コマンドにWrappingした代替用の関数群が用意されてる。

iproute2mac のインストール

これをいれれば、MacOSでも Linux / Ubuntu の ip コマンドが使える。完璧に一致することは不可能だけど、よく使うシンプルなものであれば問題なく使えそう。

takuya@Desktop$ uname
Darwin # ⇐ mac です
takuya@Desktop$ brew reinstall iproute2mac
==> Reinstalling iproute2mac
==> Downloading https://github.com/brona/iproute2mac/releases/download/v1.2.3/iproute2mac-1.2.3.tar.gz
Already downloaded: /Users/takuya/Library/Caches/Homebrew/downloads/fdb133eaa8f1346a259295ba9aa22ab568e0dd6b6506cafab6891ae6e31fcf84--iproute2mac-1.2.3.tar.gz
🍺  /usr/local/Cellar/iproute2mac/1.2.3: 6 files, 22.5KB, built in 3 seconds

ip コマンドが使えるぞ

takuya@Desktop$ ip a
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether f0:18:
    inet 169.254.146.78/16 brd 169.254.255.255 en0

ip route show でルーティングが見れる。

takuya@Desktop$ ip route show
default via 192.168.1.1 dev en0
127.0.0.0/8 via 127.0.0.1 dev lo0
255.255.255.255/32 dev en0  scope link

ip route add も使えるので、ルーティングテーブルについては覚えることが減って楽になる。

公式にも書いてあるとおり、ちゃんと使う。

ただし、所詮は糖衣錠です。子供用のシロップ風邪薬です。なので、BSDのネットワークコマンドと、mac の networksetup コマンド、これらをちゃんと覚えたほうがいいことは間違いない。

For advanced usage use netstat, ifconfig, ndp, arp, route and networksetup directly.

デリケートでデディケートな詳細な操作は、 netstat / ifconfig / ndp / arp / route / networksetup の各種コマンドを使う。

ルートを追加したり削除する。ip を追加したり削除する程度なら 十分に動いていました。

参考資料

https://github.com/brona/iproute2mac