11-ip命令與網路配置檔案
在我們配置linux網路屬性的時候,有一個非常常用的命令,就是ip命令。如何瞭解這個命令?通過rpm -qf 'which ip',檢視ip命令由哪個包安裝,通過rpm -ql iproute,檢視iproute安裝生成的檔案。
ip命令常用的形式和引數
ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
link OBJECT
ip link - network device configuration
set
dev IFACE
可設定屬性
up and down:啟用或禁用指定介面
ip link set dev eth0 down
show 當前物理介面的狀態 mtu最大傳輸單元
[dev IFACE]:指定介面
[up]:僅顯示處於啟用狀態的介面
ip addr
ip addr { add | del } IFADDR dev STRING
[label LABEL]:新增地址時指明網絡卡別名
[scope {global|link|host}]:指明作用域
global:全域性有效
link:僅連結可用
host:本機可用
[broadcast ADDRESS]:指明廣播地址
ip addr show dev eth0
例項:ip addr add 172.16.100.13/16 dev eth0,在原來的基礎上新增
例項:ip addr replace 172.16.100.14/16 dev eth0,沒有指定替換會變成新增
例項:ip addr del 172.16.100.14/16 dev eth0,刪除地址
例項:ip addr add 172.16.100.13/16 dev eth0 label 'eth0:0'
ip addr show顯示在eth0中
ifconfig會單獨顯示別名介面資訊
例項:ip addr del 172.16.100.13/16 dev eth0 label eth0:0
ip addr show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary secondary]
例項:ip addr show dev eth0 to 172.16
例項:ip addr add 172.16.100.13 dev eth0 label eth0:0
例項:ip addr show dev eth0
例項:ip addr show dev eth0 primary
例項:ip addr show dev eth0 secondary
ip addr flush - flush protocol addresses
使用格式同show
ip addr flush dev eth0 label eth0:0
ip route - routing table management
ip route add
例項:ip route add 192.168.1.3 via 172.16.0.1 dev eth0
通過ip route show檢視效果
例項:ip route add 192.168.0.0/24 via 172.16.0.1
通過ip route show檢視效果
新增路由: ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機路由:IP
網路路由:NETWORK/MASK
新增閘道器:ip route add default via GW dev IFACE
ip route delete
刪除路由:ip route del TARGET
例項:ip route del 192.168.1.3
通過ip route show檢視
或者ip route list檢視
例項:ip route del 192.168.0.0/24
通過ip route list檢視
例項:ip route add default via 172.16.0.1
通過ip route list檢視
或者route -n檢視
例項:ip route del default
通過route -n檢視
ip route show,主要用於檢視路由的相關資訊。
ip route flush
[dev IFACE]
[via PREFIX]
ss命令:
網路狀態檢視工具,用來取代netstat,實驗證明ss對程序的影響要小得多。
格式:ss [OPTION]... [FILTER]
選項
-t tcp協議相關
-u udp協議相關
-w 裸套接字相關
-x unix sock相關
-l listen狀態得連線
-a 所有
-n 數字格式
-p 相關得程式即PID
-e 擴充套件的資訊
-m 記憶體用量
-o 計時器資訊
FILTER := [ state TCP-STATE ] [ EXPRESSION]
TCP的常見狀態
tcp finite state machine
tcp的有限狀態機
LISTEN:監聽
ESTABLISHED:已建立的連線,正在通訊中的連線
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
EXPRESSION:
dport =
sport =
示例: ‘(dport = :ssh or sport = :ssh )’
常用組合
-tan -tanl -tanlp -uan
ss -tan
ss -tan state ESTABLISHED
ss -tan state LISTEN
修改配置檔案進行網路配置的方式
IP MASK GW DNS相關配置檔案:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相關的配置檔案:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE支援的指令和引數
DEVICE:此配置檔案應用到的裝置
HWADDR:對應裝置的MAC地址
BOOTPROTO:啟用此裝置時使用的地址配置協議,常用的dhcp,static,none,bootp
NM_CONTROLLED:NM是networkmanager的簡寫,此網絡卡是否接受NM控制,centos6建議為no
/etc/rc.d/init.d/network(不支援橋接和多播) /etc/rc.d/init.d/NetworkManager
ONBOOT:在系統引導時是否啟用此裝置
TYPE:介面型別:常見的有Ethernet,Bridge
UUID:裝置的唯一標識
IPADDR:指明IP地址
NETMASK:子網掩碼
GATEWAY:預設閘道器
DNS1:第一個DNS伺服器指向
此處優先於/etc/resolov
DNS2:第二個DNS伺服器指向
USERCTL:普通使用者是否可控制此裝置
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns伺服器指向資訊直接覆蓋至/etc/resolov.conf檔案中的內容
通過route -n檢視,會發現配置檔案修改後, 沒有立即生效
通過ifconfig eth0 down,然後 ifconfig eth0 up發現生效
或者service network restart也可以生效
/etc/rc.d/init.d/network restart和上面的命令效果是一樣的
路由的配置檔案
通過修改在/etc/sysconfig/network-scripts/route-IFACE
兩種風格:
(1)TARGET via GW
例項:vim route-eth0
192.168.0.0/24 via 172.16.0.1
route -n檢視發現並沒有生效
service network restart,發現正式生效
(2)每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
例項:vim route-eth0
ADDRESS0=192.16.20.0
NETMASK0=255.255.255.0
GATEWAY0=172.16.0.1
ADDRESS1=192.16.30.0
NETMASK1=255.255.255.0
GATEWAY1=172.16.0.1
給網絡卡配置多地址
ifconfig
ifconfig IFACE_ALIAS
例項:ifconfig eth0:0 192.168.0.22/24 up
ping 192.168.0.22,發現生效
但是service network restart 就沒了
ip
ip addr add
配置檔案
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
注意:閘道器別名不能使用dhcp協議引導
網路屬性配置tui(text user interface)
system-config-network-tui
不會立即生效,重啟網路才會生效
也可以使用setup找到
注意:記得重啟網路服務方能生效
配置當前主機的主機名
hostname [HOSTNAME]
/etc/sysconfig/network
HOSTNAME=
不會立即生效,重啟後才會生效
NETWORKING引數,整個系統接入網路的總開關
網路介面識別並命名相關的udev配置檔案
/etc/udev/rules.d/70-persistent-net.rules
解除安裝網絡卡驅動
modprobe -r e1000
裝載網絡卡驅動
modprobe e1000
例項:將eth0,eth1兩個配置互換
在70-persistent-net.rules中有相關資訊
可以通過lsmod檢視資訊
發現網絡卡驅動,然後將網絡卡驅動拆掉, modprobe -r e1000
重新裝上,modprobe e1000