For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
如今很多系統(tǒng)管理員依然通過組合使用諸如ifconfig、route、arp和netstat等命令行工具(統(tǒng)稱為net-tools)來配置網(wǎng)絡(luò)功能,解決網(wǎng)絡(luò)故障。net-tools起源于BSD的TCP/IP工具箱,后來成為老版本Linux內(nèi)核中配置網(wǎng)絡(luò)功能的工具。但自2001年起,Linux社區(qū)已經(jīng)對其停止維護(hù)。同時,一些Linux發(fā)行版比如Arch Linux和CentOS/RHEL 7則已經(jīng)完全拋棄了net-tools,只支持iproute2。
作為網(wǎng)絡(luò)配置工具的一份子,iproute2的出現(xiàn)旨在從功能上取代net-tools。net-tools通過procfs(/proc)和ioctl系統(tǒng)調(diào)用去訪問和改變內(nèi)核網(wǎng)絡(luò)配置,而iproute2則通過netlink套接字接口與內(nèi)核通訊。拋開性能而言,iproute2的用戶接口比net-tools顯得更加直觀。比如,各種網(wǎng)絡(luò)資源(如link、IP地址、路由和隧道等)均使用合適的對象抽象去定義,使得用戶可使用一致的語法去管理不同的對象。更重要的是,到目前為止,iproute2仍處在持續(xù)開發(fā)中。
如果你仍在使用net-tools,而且尤其需要跟上新版Linux內(nèi)核中的最新最重要的網(wǎng)絡(luò)特性的話,那么是時候轉(zhuǎn)到iproute2的陣營了。原因就在于使用iproute2可以做很多net-tools無法做到的事情。
下面的命令顯示出所有可用網(wǎng)絡(luò)接口的列表(無論接口是否激活)。使用net-tools:
$ ifconfig -a
使用iproute2:
$ ip link show
為什么在 RedHat Linux 5 下不能使用 ifconfig 命令
激活或停用網(wǎng)絡(luò)接口
使用這些命令來激活或停用某個指定的網(wǎng)絡(luò)接口。
使用net-tools:
$ sudo ifconfig eth1 up
$ sudo ifconfig eth1 down
使用iproute2:
$ sudo ip link set down eth1
$ sudo ip link set up eth1
為網(wǎng)絡(luò)接口分配IPv4地址
使用這些命令配置網(wǎng)絡(luò)接口的IPv4地址。
使用net-tools:
$ sudo ifconfig eth1 10.0.0.1/24
使用iproute2:
$ sudo ip addr add 10.0.0.1/24 dev eth1
值得注意的是,可以使用iproute2給同一個接口分配多個IP地址,ifconfig則無法這么做。使用ifconfig的變通方案是使用IP別名。
$ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1
移除網(wǎng)絡(luò)接口的IPv4地址
就IP地址的移除而言,除了給接口分配全0地址外,net-tools沒有提供任何合適的方法來移除網(wǎng)絡(luò)接口的IPv4地址。相反,iproute2則能很好地完全。
使用net-tools:
$ sudo ifconfig eth1 0
使用iproute2:
$ sudo ip addr del10.0.0.1/24 dev eth1
顯示網(wǎng)絡(luò)接口的IPv4地址
按照如下操作可查看某個指定網(wǎng)絡(luò)接口的IPv4地址。
使用net-tools:
$ ifconfig eth1
使用iproute2:
$ ip addr show dev eth1
同樣,如果接口分配了多個IP地址,iproute2會顯示出所有地址,而net-tools只能顯示一個IP地址。
為網(wǎng)絡(luò)接口分配IPv6地址
使用這些命令為網(wǎng)絡(luò)接口添加IPv6地址。net-tools和iproute2都允許用戶為一個接口添加多個IPv6地址。
使用net-tools:
$ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64
$ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64
使用iproute2:
$ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1
$ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1
顯示網(wǎng)絡(luò)接口的IPv6地址
按照如下操作可顯示某個指定網(wǎng)絡(luò)接口的IPv6地址。net-tools和iproute2都可以顯示出所有已分配的IPv6地址。
使用net-tools:
$ ifconfig eth1
使用iproute2:
$ ip -6 addr show dev eth1
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請?jiān)?0日內(nèi)與聯(lián)系我們,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!