課程咨詢(xun): 400-996-5531 / 投訴(su)建議: 400-111-8989
認真(zhen)做教育 專心促就業
如(ru)今很多系統管理(li)員(yuan)依然通過組合使用諸如(ru)ifconfig、route、arp和(he)netstat等(deng)命令行(xing)(xing)工(gong)具(ju)(統稱為net-tools)來(lai)配置網絡功能,解決網絡故(gu)障(zhang)。net-tools起源于BSD的TCP/IP工(gong)具(ju)箱(xiang),后來(lai)成為老版(ban)(ban)本(ben)Linux內核中配置網絡功能的工(gong)具(ju)。但(dan)自2001年起,Linux社區已經對其停止(zhi)維(wei)護。同時,一些Linux發(fa)行(xing)(xing)版(ban)(ban)比如(ru)Arch Linux和(he)CentOS/RHEL 7則已經完(wan)全拋棄了net-tools,只(zhi)支持iproute2。
作(zuo)為(wei)網(wang)絡(luo)配(pei)置工具的(de)(de)一份子,iproute2的(de)(de)出現旨在(zai)從功能上取代net-tools。net-tools通(tong)過procfs(/proc)和(he)ioctl系統調用(yong)去(qu)訪問和(he)改變內核(he)網(wang)絡(luo)配(pei)置,而iproute2則(ze)通(tong)過netlink套接(jie)字接(jie)口(kou)(kou)與(yu)內核(he)通(tong)訊。拋(pao)開性能而言,iproute2的(de)(de)用(yong)戶接(jie)口(kou)(kou)比(bi)net-tools顯得更加直觀。比(bi)如,各種網(wang)絡(luo)資源(如link、IP地址、路(lu)由(you)和(he)隧道等)均使(shi)用(yong)合適的(de)(de)對(dui)象(xiang)(xiang)抽象(xiang)(xiang)去(qu)定(ding)義,使(shi)得用(yong)戶可使(shi)用(yong)一致的(de)(de)語法(fa)去(qu)管(guan)理不同(tong)的(de)(de)對(dui)象(xiang)(xiang)。更重要的(de)(de)是(shi),到目前(qian)為(wei)止(zhi),iproute2仍(reng)處在(zai)持續(xu)開發中(zhong)。
如果你仍在使用(yong)net-tools,而且尤(you)其需要跟上(shang)新版Linux內核中(zhong)的最新最重要的網絡特(te)性的話,那么是時候(hou)轉到(dao)iproute2的陣營了。原因就在于使用(yong)iproute2可(ke)以做(zuo)很(hen)多net-tools無法做(zuo)到(dao)的事情(qing)。
下面的命令顯示出所有可用網絡接口的列表(無論接口是否激活)。使(shi)用net-tools:
$ ifconfig -a
使用(yong)iproute2:
$ ip link show
為什么在 RedHat Linux 5 下(xia)不能使用 ifconfig 命令(ling)
激活或停(ting)用網絡接口
使用這些命(ming)令來激活或停用某個指定的(de)網絡接口(kou)。
使用net-tools:
$ sudo ifconfig eth1 up
$ sudo ifconfig eth1 down
使用iproute2:
$ sudo ip link set down eth1
$ sudo ip link set up eth1
為網絡接口(kou)分配IPv4地(di)址
使用這些(xie)命令配(pei)置網(wang)絡接(jie)口(kou)的IPv4地址。
使用net-tools:
$ sudo ifconfig eth1 10.0.0.1/24
使用iproute2:
$ sudo ip addr add 10.0.0.1/24 dev eth1
值得注(zhu)意的(de)是,可以使用(yong)iproute2給(gei)同一個接口分配多個IP地址,ifconfig則無法這么做。使用(yong)ifconfig的(de)變通方案(an)是使用(yong)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
移(yi)除網絡接(jie)口的IPv4地址
就IP地(di)址的移除(chu)(chu)而言(yan),除(chu)(chu)了給接(jie)口分配(pei)全(quan)0地(di)址外,net-tools沒有(you)提供(gong)任(ren)何合適的方法來移除(chu)(chu)網絡(luo)接(jie)口的IPv4地(di)址。相(xiang)反,iproute2則能(neng)很好地(di)完全(quan)。
使(shi)用net-tools:
$ sudo ifconfig eth1 0
使用iproute2:
$ sudo ip addr del10.0.0.1/24 dev eth1
顯示網(wang)絡接口的IPv4地址
按照如下操(cao)作可查看某個指定網絡(luo)接口(kou)的IPv4地址。
使用(yong)net-tools:
$ ifconfig eth1
使用iproute2:
$ ip addr show dev eth1
同樣,如(ru)果接口(kou)分配了多個(ge)IP地址(zhi),iproute2會顯(xian)示出所有地址(zhi),而net-tools只能顯(xian)示一個(ge)IP地址(zhi)。
為網絡接口分配IPv6地址
使用這些命令(ling)為網絡接口添加(jia)IPv6地址。net-tools和(he)iproute2都允許用戶為一個(ge)接口添加(jia)多個(ge)IPv6地址。
使用(yong)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
顯示網絡接口的IPv6地址
按照如下操作可顯(xian)示某(mou)個指定網絡接口的IPv6地址(zhi)。net-tools和iproute2都可以顯(xian)示出所有已分配的IPv6地址(zhi)。
使用net-tools:
$ ifconfig eth1
使用iproute2:
$ ip -6 addr show dev eth1
【免責(ze)聲明】本文部分系(xi)(xi)轉載(zai)(zai),轉載(zai)(zai)目的(de)在(zai)于傳遞(di)更多信息,并(bing)不代表本網(wang)贊同其(qi)觀點和對其(qi)真實性負責(ze)。如涉(she)及作(zuo)品內容(rong)、版(ban)權和其(qi)它問題,請(qing)在(zai)30日(ri)內與聯系(xi)(xi)我(wo)們,我(wo)們會予以(yi)更改或刪除相關文章,以(yi)保證(zheng)您的(de)權益(yi)!