linux的ip指令和ifconfig類似,但前者功能更強大,并旨在取代後者。使用ip指令,隻需一個指令,你就能很輕松地執行一些網絡管理任務。ifconfig是net-tools中已被廢棄使用的一個指令,許多年前就已經沒有維護了。iproute2套件裡提供了許多增強功能的指令,ip指令即是其中之一。

net tools vs iproute2
你也可以使用git指令來下載下傳最新源代碼來編譯:
$ git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/shemminger/iproute2.git
iproute2 git clone
要給你的機器設定一個ip位址,可以使用下列ip指令:
$ sudo ip addr add 192.168.0.193/24 dev wlan0
請注意ip位址要有一個字尾,比如/24。這種用法用于在無類域内路由選擇(cidr)中來顯示所用的子網路遮罩。在這個例子中,子網路遮罩是255.255.255.0。
在你按照上述方式設定好ip位址後,需要檢視是否已經生效。
$ ip addr show wlan0
set ip address
你也可以使用相同的方式來删除ip位址,隻需用del代替add。
$ sudo ip addr del 192.168.0.193/24 dev wlan0
delete ip address
ip指令的路由對象的參數還可以幫助你檢視網絡中的路由資料,并設定你的路由表。第一個條目是預設的路由條目,你可以随意改動它。
在這個例子中,有幾個路由條目。這個結果顯示有幾個裝置通過不同的網絡接口連接配接起來。它們包括wifi、以太網和一個點對點連接配接。
$ ip route show
ip route show
假設現在你有一個ip位址,你需要知道路由包從哪裡來。可以使用下面的路由選項(譯注:列出了路由所使用的接口等):
$ ip route get 10.42.0.47
ip route get
要更改預設路由,使用下面ip指令:
$ sudo ip route add default via 192.168.0.196
default route
使用ip指令還可以顯示不同網絡接口的統計資料。
ip statistics all interfaces
當你需要擷取一個特定網絡接口的資訊時,在網絡接口名字後面添加選項ls即可。使用多個選項-s會給你這個特定接口更詳細的資訊。特别是在排除網絡連接配接故障時,這會非常有用。
$ ip -s -s link ls p2p1
ip link statistics
位址解析協定(arp)用于将一個ip位址轉換成它對應的實體位址,也就是通常所說的mac位址。使用ip指令的neigh或者neighbour選項,你可以檢視接入你所在的區域網路的裝置的mac位址。
$ ip neighbour
ip neighbour
也可以使用ip指令檢視netlink消息。monitor選項允許你檢視網絡裝置的狀态。比如,所在區域網路的一台電腦根據它的狀态可以被分類成reachable或者stale。使用下面的指令:
$ ip monitor all
ip monitor all
你可以使用ip指令的up和down選項來激某個特定的接口,就像ifconfig的用法一樣。
在這個例子中,當ppp0接口被激活和在它被停止和再次激活之後,你可以看到相應的路由表條目。這個接口可能是wlan0或者eth0。将ppp0更改為你可用的任意接口即可。
$ sudo ip link set ppp0 down
$ sudo ip link set ppp0 up
ip link set up and down
當你陷入困境,不知道某一個特定的選項怎麼用的時候,你可以使用help選項。man頁面并不會提供許多關于如何使用ip選項的資訊,是以這裡就是擷取幫助的地方。
比如,想知道關于route選項更多的資訊:
$ ip route help
ip route help
對于網絡管理者們和所有的linux使用者們,ip指令是必備工具。是時候抛棄ifconfig指令了,特别是當你寫腳本時。
原文釋出時間:2014-06-04
本文來自雲栖合作夥伴“linux中國”