網絡管理是一個複雜而龐大的體系,博主最近剛好學了一點關於網絡的知識,就跟大家分享一下如何管理網卡、配置及查看ip地址和路由表。主要通過以下幾個命令來演示一下。
現在一些舊的命令由於功能上有欠缺,已經逐漸被新命令取代。
舊命令 | 新命令 |
ifconfig | ip addr |
route | ip route |
ip link |
1)配置地址:
比如修改eth0網卡的ip爲192.168.174.100,子網掩碼爲255.255.255.0
ifconfig eth0 192.168.174.100/24
使用ifconfig修改ip會直接在內存中生效,重啓系統或者重啓network服務就丟失。
重啓服務:Centos6:service network restart
Centos7:systemctl restart network
2)具有查看功能:
①ifconfig
顯示網卡信息,被禁用的網卡看不到.(拔了網線斷開連接不算禁用,仍然能看到該網卡)
②ifconfig -a
不管啓用的網卡還是禁用的都能顯示出來,但是看不到禁用網卡的ip
③ip a
也是查看網卡,但是如果網卡被down,ifconfig -a不顯示該ip,也不顯示網卡狀態,但是ip a可以顯示網卡處於down狀態
3)啓用、禁用網卡
①ifconfig eth1 up 啓用eth1網卡
ifconfig eth1 down 禁用eth1網卡
這種禁用是從數據鏈路層斷掉,但是網絡層ip還在,也就是仍然能ping通
②ifdown eth0 禁用網卡,刪除了網絡層ip
ifip eth0 啓用網卡
4)掃描eth0接口的數據
ifconfig -s eth0
5)網卡別名
ifconfig eth1:1 192.168.174.100/24 起網卡別名
ifconfig eth1:1 192.168.174.100/24 刪除別名
1、 查看路由表:
route -n
2、添加路由記錄:是臨時添加的記錄,重啓network服務就失效
1)添加到達目標主機的路由
route add -host 目標主機 gw 網關 dev 接口
比如 給eth0網卡添加一條到達10.1.111.111的路由記錄,網關是10.2.111.111
route add -host 10.1.111.111 gw 10.2.111.111 dev eth0
2)添加到達目標網絡的路由
route add -net 目標網絡 netmask 子網掩碼 gw 網關 dev 接口
或者 route add -net 目標網絡/子網掩碼 gw 網關 dev 接口
比如 給eth0網卡添加一條到達網絡10.1.0.0/16的路由,網關是10.2.111.111
route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.111.111 dev eth0 或者 route add -net 10.1.0.0/16 gw 10.2.111.111 dev eth0
3)添加默認路由
route add default gw 網關
比如給eth0添加一條默認路由,網關是10.2.111.111
route add default gw 10.2.111.111
3、 刪除路由記錄:
刪除路由記錄只需要把添加路由記錄命令中的add改成del就可以了,不過刪除路由記錄可以省略接口
1)刪除到達目標主機的路由記錄
route del -host 主機名
2)刪除到達目標網絡的路由記錄
route del -net 目標網絡/子網掩碼
3)刪除默認路由
route del default
ip route 的用法與route大同小異
1、顯示路由:
ip route [show | list]
ip route顯示的路由記錄與route顯示的格式不一樣
2、添加路由
1)添加到達目標主機的路由記錄
ip route add 目標主機 via 網關
2)添加到達網絡的路由記錄
ip route add 目標網絡/掩碼 via 網關
3)添加默認路由
ip route add default via 網關
下面只舉一個例子說明一下。
比如增加一條到達主機10.2.111.112的路由,網關是10.1.111.112
ip route add 10.2.111.112 via 10.1.111.112
3、刪除路由
ip route del 目標網絡/掩碼
ip route del default [via 網關]
4、清空路由表:
ip route flush
1)查看
ip link只能看鏈路層的狀態,看不到ip地址
2)啓用、禁用接口
ip link set device down 禁用指定接口
ip link set device up 啓用指定接口
比如禁用eth0就是ip link set eth0 down
說明:
ip link不支持tab鍵補齊
在centos6中有的命令不支持tab鍵補齊,那麼使用需要安裝bash-completion包,安裝完之後,可以查看包裏都支持哪些命令補齊,但是發現ip link不包括在內。
1)查看
①ip addr 即ip a ,可以查看網卡的ip、mac等,即使網卡處於down狀態,也能顯示出網卡狀態,但是ifconfig查看就看不到。
②ip addr show device 查看指定網卡的信息
比如查看eth的信息,就是ip addr show eth0
2)作用域
scope {global|link|host}]:指明作用域
①global: 全局可用,即兩個接口進來的數據我都可以響應。是默認狀態。
②link: 僅鏈接可用,進來的數據只有直接相連的那個接口能夠響應
③host: 本機可用,即只能自己訪問
3)增加ip
ip addr add ip/netmask dev 接口
比如給eth0增加一個2.2.2.2/16 地址
ip addr add 2.2.2.2/16 dev eth0
4)刪除ip
ip addr del ip/netmask dev 接口
5)清空指定網卡的所有ip
ip addr flush dev 接口
6)給網卡起別名,起別名相當於給網卡多綁定了一個ip
用法: 比如給網卡eth0增加別名
ip addr add 3.3.3.3/16 dev eth0 label eth0:1
7)刪除別名
ip addr del ip/netmask dev eth0 [label eth0:1]
說明一:
使用命令的方式設置別名,重啓服務就沒了,若要永久生效,需要寫配置文件,步驟如下:
1、確保NetworkManager服務是停止的
Centos6: service NetworkManager status 查看服務狀態
service NetworkManager stop 臨時停止
chkconfig NetworkManager off 下次開機即停止服務
Centos7: systemctl status NetworkManager 查看服務狀態
systemctl stop NetworkManager 臨時停止
systemctl disable NetworkManager 下次開機即停止服務
2、 編輯配置文件
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth1:1 至少寫入以下內容
DEVICE=eth1:1
BOOTPROTO=static
IPADDR= ==》ip地址
PREFIX= ==》掩碼
GATEWAY= ==》網關
設置別名時必須是靜態ip,不能是自動獲取
3、 重啓服務
Centos6: service network restart
Centos7: systemctl restart network
如果不想要這個別名了,直接刪除該文件,然後重啓服務即可 。
說明二:
使用命令的方式增加或者刪除ip,都是臨時的,如果重啓network服務,那麼操作就失效了。想要永久生效可以修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth*,這個文件是用來設置網卡參數,這個文件內的所有設置,基本上就是bash的變量設置規則(都應該要大寫),否則我們的scropt會誤判。
步驟如下:
1) 編輯文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0 至少要有如下幾項:
DEVICE=eth0
BOOTPROTO=static
IPADDR= ==》ip地址
PREFIX= ==》掩碼
GATEWAY= ==》網關
2)生效:重啓服務
Centos6: service network restart
Centos7: systemctl restart network
說明三:
使用命令的方式增加或者刪除路由記錄,都是臨時的,如果重啓network服務,那麼操作就失效了。想要永久生效可以編輯配置文件/etc/sysconfig/network-scripts/route-eth*,步驟如下:
1、 vim etc/sysconfig/network-scripts/route-eth0
文件內容有兩種寫法:
1)單行
netid/mask via gw 比如2.2.2.2/16 via 10.0.0.0
2)多行
ADDRESS#=目標網絡
NETMASK#=子網掩碼
GATEWAY#=網關
注意:
同一路由記錄的#數字必須一樣,因爲可能會添加多條路由,數字一樣的爲同一組。
同一個文件裏,兩種格式不能混合着寫。
2、重啓服務
Centos6: service network restart
Centos7: systemctl restart network
以上就是一些關於增加或者刪除ip及路由記錄的小命令,臨時起作用的命令一般用在測試環境中,想要永久生效就需要寫在文件裏。希望這篇博文能對大家有所幫助,歡迎留言,共同探討。