天天看點

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

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

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

net tools vs iproute2

你也可以使用git指令來下載下傳最新源代碼來編譯:

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

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

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

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

set ip address

你也可以使用相同的方式來删除ip位址,隻需用del代替add。

$ sudo ip addr del 192.168.0.193/24 dev wlan0

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

delete ip address

ip指令的路由對象的參數還可以幫助你檢視網絡中的路由資料,并設定你的路由表。第一個條目是預設的路由條目,你可以随意改動它。

在這個例子中,有幾個路由條目。這個結果顯示有幾個裝置通過不同的網絡接口連接配接起來。它們包括wifi、以太網和一個點對點連接配接。

$ ip route show

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

ip route show

假設現在你有一個ip位址,你需要知道路由包從哪裡來。可以使用下面的路由選項(譯注:列出了路由所使用的接口等):

$ ip route get 10.42.0.47

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

ip route get

要更改預設路由,使用下面ip指令:

$ sudo ip route add default via 192.168.0.196

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

default route

使用ip指令還可以顯示不同網絡接口的統計資料。

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

ip statistics all interfaces

當你需要擷取一個特定網絡接口的資訊時,在網絡接口名字後面添加選項ls即可。使用多個選項-s會給你這個特定接口更詳細的資訊。特别是在排除網絡連接配接故障時,這會非常有用。

$ ip -s -s link ls p2p1

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

ip link statistics

位址解析協定(arp)用于将一個ip位址轉換成它對應的實體位址,也就是通常所說的mac位址。使用ip指令的neigh或者neighbour選項,你可以檢視接入你所在的區域網路的裝置的mac位址。

$ ip neighbour

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

ip neighbour

也可以使用ip指令檢視netlink消息。monitor選項允許你檢視網絡裝置的狀态。比如,所在區域網路的一台電腦根據它的狀态可以被分類成reachable或者stale。使用下面的指令:

$ ip monitor all

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

ip monitor all

你可以使用ip指令的up和down選項來激某個特定的接口,就像ifconfig的用法一樣。

在這個例子中,當ppp0接口被激活和在它被停止和再次激活之後,你可以看到相應的路由表條目。這個接口可能是wlan0或者eth0。将ppp0更改為你可用的任意接口即可。

$ sudo ip link set ppp0 down

$ sudo ip link set ppp0 up

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

ip link set up and down

當你陷入困境,不知道某一個特定的選項怎麼用的時候,你可以使用help選項。man頁面并不會提供許多關于如何使用ip選項的資訊,是以這裡就是擷取幫助的地方。

比如,想知道關于route選項更多的資訊:

$ ip route help

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

ip route help

對于網絡管理者們和所有的linux使用者們,ip指令是必備工具。是時候抛棄ifconfig指令了,特别是當你寫腳本時。

原文釋出時間:2014-06-04

本文來自雲栖合作夥伴“linux中國”

繼續閱讀