棄用 ifconfig 吧,你值得收藏的 IpRoute2 簡明指南
前言
介紹
net-tools
。雖然
net-tools
工具包提供了相當完善的功能,但是包內工具的開發卻是相互獨立的,它們的使用方式也各不相同。
net-tools
包內工具的使用方式大相徑庭,並且包內的部分工具也已經停止維護,因此使用名為
iproute2
的新工具包來替換原來
net-tools
。
iproute2
包內的各個工具被統一開發維護,並且他們之間的使用方式也非常相似。另外,這些工具也可以很好地互相配合一起使用。
iproute2
來對你的網路進行配置、維護和資訊檢視。我們將會使用 Ubuntu 12.04 VPS 來進行演示,不過大多數其它現代 Linux 發行版都提供了相同的功能。如何檢視網路介面、地址、路由
一般來說,本機的網路介面通常會被命名成像是
eth0
,
eth1
,
lo
這樣的名稱。在過去,常常使用
net-tools
包提供的
ifconfig
命令來配置網路介面。而使用
iproute2
時,通常可以使用子命令
ip addr
和
ip link
來完成相同的功能。
使用 ifconfig 時,你可以透過輸入不帶引數的如下命令來檢視本機當前所有網路介面的狀態:
ifconfig
eth0 Link encap:Ethernet HWaddr 54:be:f7:08:c2:1b inet addr:192.168.56.126 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::56be:f7ff:fe08:c21b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:114273 errors:0 dropped:0 overruns:0 frame:0 TX packets:58866 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:73490903 (73.4 MB) TX bytes:14294252 (14.2 MB) Interrupt:20 Memory:f7f00000-f7f20000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:3942 errors:0 dropped:0 overruns:0 frame:0 TX packets:3942 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:668121 (668.1 KB) TX bytes:668121 (668.1 KB)
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 54:be:f7:08:c2:1b inet addr:192.168.56.126 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::56be:f7ff:fe08:c21b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:114273 errors:0 dropped:0 overruns:0 frame:0 TX packets:58866 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:73490903 (73.4 MB) TX bytes:14294252 (14.2 MB) Interrupt:20 Memory:f7f00000-f7f20000
使用 iproute2 包提供的子命令,我們可以實現相同的功能。
如果想要檢視每個網路介面被配置的地址,可以輸入不帶引數的 ip addr 命令:
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 54:be:f7:08:c2:1b brd ff:ff:ff:ff:ff:ff inet 192.168.56.126/24 brd 192.168.56.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::56be:f7ff:fe08:c21b/64 scope link valid_lft forever preferred_lft forever
如果想要檢視某個特定網路介面的地址資訊,你可以使用如下格式的命令:
ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 54:be:f7:08:c2:1b brd ff:ff:ff:ff:ff:ff inet 192.168.56.126/24 brd 192.168.56.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::56be:f7ff:fe08:c21b/64 scope link valid_lft forever preferred_lft forever
事實上,
ip addr
只是
ip addr show
命令的別名。
如果你只關心網路介面本身,而不在意它們被配置的地址,那麼你可以使用 ip link 子命令:
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 04:01:13:8a:a2:01 brd ff:ff:ff:ff:ff:ff
ip link show eth0
如果想要獲得網路介面如何通訊的統計資料,那麼你可以給
link
子命令傳入
-s
選項:
ip -s link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 04:01:13:8a:a2:01 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 853144 14672 0 0 0 0 TX: bytes packets errors dropped carrier collsns 91257 537 0 0 0 0
ip route show
default via 107.170.58.1 dev eth0 metric 100107.170.58.0/24 dev eth0 proto kernel scope link src 107.170.58.162
如何配置網路介面和地址
既然你已經熟悉瞭如何獲取網路介面資訊和與它們關聯的地址資訊,那麼下一步就應該是瞭解如何修改網路介面的狀態了。
首先需要了解如何配置介面本身。你仍然可以使用 ip link 子命令,不過這次你需要傳入
set
而不是
show
來修改配置。
例如,我們可以透過使用以下命令來開啟或關閉網路介面:
ip link set eth1 upip link set eth1 down
注意:當心不要意外關閉了你正連線的 VPS 的網路介面!
ip link set eth1 multicast onip link set eth1 multicast off
你也可以輸入如下的命令來修改 MTU 和分組佇列的長度:
ip link set eth1 mtu 1500ip link set eth1 txqueuelen 1000
如果你正配置的網路介面是關閉(down)狀態,那麼你可以修改網路介面的名稱和與之關聯的 arp 標誌:
ip link set eth1 name eth10ip link set eth1 arp on
如果要修改網路介面的地址,那麼我們可以再次使用 ip addr 子命令。
透過輸入以下命令我們可以為網路介面新增一個地址:
ip addr add IPADDRESS/NETPREFIX brd + dev INTERFACE
該命令的
brd +
部分會自動設定廣播地址。每個網路介面都可以新增多個地址而不會出現任何問題。
我們也可以執行相反的操作來刪除網路地址。要刪除指定網路介面的某個地址,可以使用如下命令:
ip addr del IPADDRESS/NETPREFIX dev INTERFACE
你也可以省略輸入地址,這樣與該網路介面關聯的第一個被列出的地址將被刪除。
透過使用 ip route [add | change | replace | delete ] 語法,你也可以刪除路由規則。但我們不會在這裡介紹,因為大多數人不會定期對此進行調整。
IpRoute2 的其他功能
ip rule show
0: from all lookup local 32766: from all lookup main 32767: from all lookup default
man
檢視 ip rule 的手冊來進行進一步的學習。man ip # search for "ip rule"
ip neigh
107.170.58.1 dev eth0 lladdr 00:00:5e:00:01:68 DELAY
結語
現在,你應該對如何使用 iproute2 包中的工具有了一個很好的瞭解了。
儘管許多指南和教程仍然引用舊的 net-tools 工具包,部分原因是有經驗的系統管理員過去經常使用舊的工具包,但本指南中討論的命令將在未來幾年內逐步替代 net-tools 工具。
重要的是,現在你必須熟悉這些命令,然後才能在已切換到這些命令的系統上解決網路問題(Arch Linux 早在 2011 年就已經完全切換到了新工具)。新工具用法更加一致,你可以指望在所有命令中都可以使用類似的用法。你使用這些命令的次數越多,它們對你而言就越自然。
By Justin Ellingwood.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013542/viewspace-2925436/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 無需語言的數學證明,值得收藏!
- 值得收藏!選擇正確BI工具的最佳指南
- 框架用的好,下班走的早!值得收藏框架
- React Native 效能優化指南【全網最全,值得收藏】React Native優化
- 前端基礎面試大全,值得你收藏前端面試
- 深入 Java 類載入全流程,值得你收藏Java
- 幾個值得收藏的好用的網站和應用網站
- 值得收藏的免費api集合API
- 值得收藏的免費好用APIAPI
- 最簡明的 Tcpdump 抓包入門指南TCP
- 推薦五款簡潔而實用的工具,值得你嘗試
- 這份貼片電感封裝尺寸你值得收藏封裝
- 哪些茶葉值得收藏?
- 簡單易懂的 React useState() Hook 指南(長文建議收藏)ReactHook
- 一些值得收藏的PowerShell工具
- 45個值得收藏的 CSS 形狀CSS
- 值得收藏的正規表示式大全
- 多個值得收藏的網址和軟體,你確定不來看看?
- 一文帶你搞懂 Kafka 的系統架構(深度好文,值得收藏)Kafka架構
- 免費好用的API彙總,值得收藏!API
- 【譯】45個值得收藏的 CSS 形狀CSS
- iproute2工具包的使用
- Python實戰小案例,值得收藏!Python
- 簡明高效的 Java 併發程式設計學習指南Java程式設計
- 分享10個Github上排名前10的技術教程+開源專案,值得你收藏深入研究,用來豐富簡歷綽綽有餘!Github
- 自媒體人必備的5個工具,讓你的創作效率翻倍,值得收藏
- 從大神的角度深入理解MySQL,值得收藏~MySql
- 值得收藏的TCP套介面程式設計文章TCP程式設計
- 值得收藏的資料分析基礎知識
- 值得收藏的27個機器學習的小抄機器學習
- 「簡明效能優化」雙端開啟Gzip指南優化
- java 常用工具類 (值得收藏)Java
- 教你吧GV發簡訊充分VG不回你即可
- 《JavaScript語法簡明手冊》一本初入前端的極簡指南JavaScript前端
- Laravel的這10個用法,你都沒用過吧!!Laravel
- Go1.18 新特性:棄用 strings.Title 方法,換個新坑吧!Go
- 分享5款優秀的軟體工具,值得收藏
- 值得收藏的一些免費可用API 大全API