Linux下使用ip替代ifconfig


2009年 Debian 開發者郵件列表宣布放棄使用缺乏維護的 net-tools 工具包,到今天 net-tools 仍然被部分人們所使用。

由於 net-tools 不再維護,強烈建議以 ip 命令代替 ifconfig。

最起碼,你得知道這個新的 ip 命令!新版的 CentOS Mini 已經不再預裝 net-tools,Docker 版的 ubuntu 也不再支持,所以很有必要學習下新的 ip 命令。

不管是 ip 還是 ifconfig 我們也就是干下面的幾件事:

  • 列出系統上配置了哪些網絡接口
  • 查看網絡接口的狀態
  • 配置網絡接口(包括本地環路和以太網)
  • 啟用或禁用網絡接口
  • 管理默認靜態路由
  • IP 隧道配置
  • 配置 ARP 或 NDISC 緩存條目

收集信息

用的最頻繁的就是查看分配的 ip 等信息了吧,以前只需要輸入 ifconfig 即可,現在也有同樣簡單的命令:

ip a

如果只想看 ipv4 的信息只需要:

ip -4 a

查看特定網絡接口的信息(比如無線):

ip a show wlan0

列出正在運行的網絡接口:

ip link ls up

修改配置

這是常用的第二大功能,下面就比較來說:

修改 ip 為指定的地址,ifconfig 是這樣的:

ifconfig eth0 192.168.1.101

那么用 ip 命令卻是這樣的。

ip a add 192.168.1.101/255.255.255.0 dev eth0

簡短一點可以這樣:

ip a add 192.168.1.101/24 dev eth0

顯然這樣的話,你需要知道你要安排的地址的子網掩碼

還記得么?ipv4 是由 32 位構成,分為四段,每段 8 位,1111 1111 就是最大值換成十進制是 255

x.x.x.x/24 的意思就是前 24 位是網絡地址,也就是最后一段才是主機地址。

同樣的方式,你可以這樣刪除一個網卡的地址:

ip a del 192.168.1.101/24 dev eth0

如果你想簡單的清除所有接口上的所有地址,只需要這樣即可。

ip -s -s a f to 192.168.1.0/24

ip 命令另一方面還能激活/禁用網絡接口。

  • 禁用 eth0

    ip link set dev eth0 down

  • 激活 eth0

    ip link set dev eth0 up

使用 ip 命令,我們還可以添加/刪除默認的網關,就像這樣:

ip route add default via 192.168.1.254

如果你想獲得網絡接口的更多細節,你可以編輯傳輸隊列,給速度慢的接口設置一個低值,給速度快的設置一個較高值。那么你需要像這樣做 :

ip link set txqueuelen 10000 dev eth0

該命令設置了一個很長的傳輸隊列。你應該設置一個最適合你硬件的值。

還可以用 ip 命令為網絡接口設置最大傳輸單元。

ip link set mtu 9000 dev eth0

一旦你做了改變,便可以使用 ip a list eth0 來檢驗是否生效。

管理路由

其實還可以使用 ip 命令來管理系統路由表。這是 ip 命令非常有用的一個功能。並且你應該小心使用。

查看所有路由表:

ip r

現在你想要路由的所有流量從 eth0 網卡的 192.168.1.254 網關通過,那么請這樣做:

ip route add 192.168.1.0/24 dev eth0

刪除這個路由:

ip route del 192.168.1.0/24 dev eth0

來自:https://linuxstory.org/replacing-ifconfig-with-ip/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM