開始使用現(xiàn)代方法配置 linux 網(wǎng)絡接口。
在很長一段時間內(nèi),ifconfig
命令是配置網(wǎng)絡接口的默認方法。它為 Linux 用戶提供了很好的服務,但是網(wǎng)絡很復雜,所以配置網(wǎng)絡的命令必須健壯。ip
命令是現(xiàn)代系統(tǒng)中新的默認網(wǎng)絡命令,在本文中,我將向你展示如何使用它。
ip
命令工作在OSI 網(wǎng)絡棧的兩個層上:第二層(數(shù)據(jù)鏈路層)和第三層(網(wǎng)絡 或 IP)層。它做了之前net-tools
包的所有工作。
安裝 ip
ip
命令包含在iproute2util
包中,它可能已經(jīng)在你的 Linux 發(fā)行版中安裝了。如果沒有,你可以從發(fā)行版的倉庫中進行安裝。
ifconfig 和 ip 使用對比
ip
和ifconfig
命令都可以用來配置網(wǎng)絡接口,但它們做事方法不同。接下來,作為對比,我將用它們來執(zhí)行一些常見的任務。
查看網(wǎng)口和 IP 地址
如果你想查看主機的 IP 地址或網(wǎng)絡接口信息,ifconfig
(不帶任何參數(shù))命令提供了一個很好的總結(jié)。
$ ifconfig
eth0: flags=4099
新的 ip
命令提供了類似的結(jié)果,但命令是ip address show
,或者簡寫為ip a
:
$ ip a
1: lo:
添加 IP 地址
使用 ifconfig
命令添加 IP 地址命令為:
$ ifconfig eth0 add 192.9.203.21
ip
類似:
$ ip address add 192.9.203.21 dev eth0
ip
中的子命令可以縮短,所以下面這個命令同樣有效:
$ ip addr add 192.9.203.21 dev eth0
你甚至可以更短些:
$ ip a add 192.9.203.21 dev eth0
移除一個 IP 地址
添加 IP 地址與刪除 IP 地址正好相反。
使用 ifconfig
,命令是:
$ ifconfig eth0 del 192.9.203.21
ip
命令的語法是:
$ ip a del 192.9.203.21 dev eth0
啟用或禁用組播
使用 ifconfig
接口來啟用或禁用組播multicast:
# ifconfig eth0 multicast
對于 ip
,使用set
子命令與設(shè)備(dev
)以及一個布爾值和multicast
選項:
# ip link set dev eth0 multicast on
啟用或禁用網(wǎng)絡
每個系統(tǒng)管理員都熟悉“先關(guān)閉,然后打開”這個技巧來解決問題。對于網(wǎng)絡接口來說,即打開或關(guān)閉網(wǎng)絡。
ifconfig
命令使用up
或down
關(guān)鍵字來實現(xiàn):
# ifconfig eth0 up
或者你可以使用一個專用命令:
# ifup eth0
ip
命令使用set
子命令將網(wǎng)絡設(shè)置為up
或down
狀態(tài):
# ip link set eth0 up
開啟或關(guān)閉地址解析功能(ARP)
使用 ifconfig
,你可以通過聲明它來啟用:
# ifconfig eth0 arp
使用 ip
,你可以將arp
屬性設(shè)置為on
或off
:
# ip link set dev eth0 arp on
ip 和 ipconfig 的優(yōu)缺點
ip
命令比ifconfig
更通用,技術(shù)上也更有效,因為它使用的是Netlink
套接字,而不是ioctl
系統(tǒng)調(diào)用。
ip
命令可能看起來比ifconfig
更詳細、更復雜,但這是它擁有更多功能的一個原因。一旦你開始使用它,你會了解它的內(nèi)部邏輯(例如,使用set
而不是看起來隨意混合的聲明或設(shè)置)。
最后,ifconfig
已經(jīng)過時了(例如,它缺乏對網(wǎng)絡命名空間的支持),而ip
是為現(xiàn)代網(wǎng)絡而生的。嘗試并學習它,使用它,你會由衷高興的!
via: https://opensource.com/article/21/1/ifconfig-ip-linux
作者:Rajan Bhardwaj選題:lujun9972譯者:MjSeven校對:wxy
本文由 LCTT原創(chuàng)編譯,Linux中國榮譽推出