Linux下常用的配置IP及route的命令彙編

  • 2019 年 10 月 5 日
  • 筆記

Linux下用於配置或者查看IP地址、路由表的命令有很多,本文打算將其都羅列出來,後面想到其它的命令再一一補充。

內容有點雜亂。。。。。

1.配置、及查看IP地址的命令

常用的有ifconfig、ifcfg、ip命令。

下面主要以常用的實例來說明其用法。具體的參數請參考man幫助文檔。

1.1 ifconfig命令:

ifconfig -a                   # 顯示所有網絡接口信息【含down狀態的接口】

ifconfig eth0     # 顯示eth0接口信息

ifcfg eth0 down|up           # 關閉|啟用eth0

ifconfig eth0 192.168.10.2/24 up    # 修改eth0的IP地址為192.168.10.2/24【重啟網絡服務i配置即失效】

ifconfig eth0 192.168.10.2 netmask 255.255.255.0        # 設置ip地址,同上一條命令效果一樣

ifconfig eth0:0 192.168.20.2/24 up          # 添加虛擬網卡eth0:0,IP地址為192.168.20.2/24【重啟網絡服務i配置即失效】

1.2 ifcfg命令:

ifcfg是用來取代ifconfig命令的,和ifconfig命令功用基本一致。

ifcfg eth0:0 add 192.168.10.2/24    # 添加虛擬網卡eth0:0,IP地址為192.168.10.2/24【重啟網絡服務i配置即失效】

ifcfg eth0:0 del 192.168.10.2/24

1.3 ip 命令:

ip link sh           # 顯示的所有接口的鏈路狀態【down 或者up,MTU等信息】

ip link sh eth0  # 顯示eth0的鏈路狀態

ip link sh eth0  # 顯示eth0的鏈路狀態

ip link sh up      # 僅顯示狀態為up的接口信息

ip link set eth1 down|up           # 激活或禁止eth1接口

ip addr sh          # 顯示網卡及IP等信息

ip addr sh eth1         # 顯示eth1的IP信息

ip addr sh label eth1*      # 顯示匹配label為eth1的網卡信息【支持通配符】

ip addr add 192.168.2.11/24 dev eth0 label eth0:0         # 添加虛擬網卡,並指定網卡別名

ip addr del 192.168.2.11/24 dev eth0               # 刪除虛擬網卡

Note:下面的幾個 ip addr 命令不常用

ip addr add 10.10.10.20/24 dev eth1 scope link

上面的[scope {global|link|host}]:指明作用域【global: 全局可用;link: 僅鏈接可用;host: 本機可用;】

此外,還可以設置broadcast廣播地址,如:ip addr add 10.10.20.20 broadcast 10.255.255.255 dev eth1

ip addr flush eth0     # 清空eth0網卡的配置

ip addr flush eth1 to 192.168.2.10/24     # 清空eth1上的192.168.2.10/24

ip addr flush 的各種參數格式和ip addr show類似,請參考上面。

2.配置及查看路由的命令

常用的有route、ip命令。

下面主要以常用的實例來說明其用法。更多的參數請參考man幫助文檔。

2.1 route命令:

route -n    # 以數字形式顯示路由條目【自動將域名解析為IP地址】

添加一條主機路由

route add -host 192.168.3.1 gw 172.16.0.1 dev eth0       

# 添加一條到達主機192.168.3.1的路由,經由eth0接口, ,網關為172.16.0.1

注意:添加主機路由時候,不要加掩碼

添加一條網段路由

route add -net 192.168.4.0/24 gw 172.16.0.1 dev eth0  

# 添加一條到達192.168.4.0/24網段的路由,經由eth0接口,網關為172.16.0.1

添加默認路由

route add default gw 172.16.0.1

或者route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1

刪除路由

route del -host 192.168.1.3            # 刪除到192.168.1.3的主機路由

route del -net 192.168.0.0 netmask 255.255.255.0          # 刪除到192.168.0.0/24網段的路由

2.2 ip命令:

ip route sh    # 顯示本機路由表信息

常用的還有:ip route { add | del | change | append | replace | monitor } ROUTE

添加路由

ip route add TARGET via GW dev IFACE src SOURCE_IP

TARGET可以是:

主機路由:具體IP地址

網絡路由:NETWORK/MASK

例如:

ip route add 192.168.20.2 via  192.168.2.2 dev eth0 src 192.168.2.13      # 添加主機路由【不加掩碼】

# 如果只有一塊網卡的話,其中的src Source_IP可以不寫

ip route add 192.168.20.0/24 via 192.168.2.2 dev eth0 src 192.168.2.13   # 添加網絡路由【需要加掩碼】

添加網關:

ip route add defalt via GW dev IFACE

刪除路由:

格式:ip route del TARGET

ip route del 192.168.20.2        # 刪除主機路由【del後面接的是單個IP地址】

ip route del 192.168.20.0/24   # 刪除網絡路由【del後面接的是網段】

ip route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

清空路由表

ip route flush

       [dev IFACE]

       [via PREFIX]

例如:

ip route flush       # 清空所有路由表

ip route flush dev eth1      # 清空與eth1 接口

ip route flush dev eth1 via 192.168.10.10

補充一:

路由表格式:

Destination列:是遠程路由地址,可以是主機地址或者網段

Gateway列:

GenMask列:Destination的掩碼

Flags列:

U表示該路由可用

G表示該路由需要經網關轉發

H表示該行的路由為一台主機,而非一個網段

補充二:

配置IP過程中,一些也會用到的命令,如:

ifup eth1       # 啟用eth1

ifdown eth1  # 禁掉eth1