試試Linux下的ip命令,ifconfig已經過時了

發表於2014-06-04

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

Net tools vs Iproute2

要安裝ip,請點選這裡下載iproute2套裝工具 。不過,大多數Linux發行版已經預裝了iproute2工具。

你也可以使用git命令來下載最新原始碼來編譯:

$ git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/shemminger/iproute2.git

iproute2 git clone

設定和刪除Ip地址

要給你的機器設定一個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條目

地址解析協議(ARP)用於將一個IP地址轉換成它對應的實體地址,也就是通常所說的MAC地址。使用ip命令的neigh或者neighbour選項,你可以檢視接入你所在的區域網的裝置的MAC地址。

$ ip neighbour

ip neighbour

監控netlink訊息

也可以使用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命令了,特別是當你寫指令碼時。


via: http://linoxide.com/linux-command/use-ip-command-linux/

譯者:KayGuoWhu 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章