LINUX 紅帽系列系統網絡管理常用方法
一、靜態配置網絡的幾種方法
1、ifconfig [interface]
-a :查看包括未激活狀態的所有接口
啟用或禁用:ifconfig IFNAME up|down
或者啟用:ifup IFNAME
禁用:ifdown IFNAME
設定IP地址:ifconfig IFACE IP/netmask [up]
註:CIDR格式掩碼,如172.18.0.1/16
或者:ifconfig IFACE IP netmask NETMASK
註:完整格式掩碼,如255.255.0.0
設定的地址會立即送往內核,立即生效,但不會永久有效。
route
route -n 以數字格式顯示本機內核路由表
添加路由:route add [-net|-host] target [netmask Nm] [gw Gw][[dev] If]
-net 後面跟網絡地址,表示網絡路由
-host 後面跟主機地址,表示主機路由
例:route add -net 192.168.0.0/16 gw 172.18.0.1
route add -host 192.168.1.1 gw 172.18.0.1
route add default gw 172.18.0.1
刪除路由:route del [-net|-host] target [gw Gw] [netmask Nm][[dev] If]
例:route del -net 0.0.0.0 gw 172.18.0.1
註:所有配置發往內核中的協議棧,立即生效,但不會永久生效。若想永久生效需更改對應的靜態 路由的配置文件/etc/sysconfig/network-scripts/route-IFNAME
配置格式一:每一行定義一個路由條目
如:192.18.0.0/16 via 172.18.0.1
192.18.1.1 via 172.18.0.1
配置格式二:每三行定義一個路由條目
ADDRESS#=
NETMASK#=
GATEWAY#=
註: 這兩種方式不能混用。
2、ip命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
①link :鏈接接口屬性設置
set:設定接口屬性
ip link set DEVICE {up|down}
promisc {on|off}: 是否支持混雜模式
name NEWNAME :更改接口名
show :顯示接口狀態,例如啟動的特性,HWADDR等
ip link show DEVICE
②addr :管理接口地址
add:添加地址
del :刪除地址
例:ip addr add 172.18.10.10/16 dev eth0
show :顯示該網卡上的所有地址信息
ip addr show [dev IFNAME]
flush :清除所有協議地址
ip addr flush [dev IFNAME]
③route:管理路由
list | show :顯示路由
add:添加路由
ip route add 目標網絡(址) via 網關 [dev IFNAME]
例:設定默認網關
ip route add defalut via 172.18.0.1
del :刪除路由
例:ip route del 172.18.10.0/16
3、修改網卡對應文件/etc/sysconfig/network-scripts/ifcfg-IFACE
常用參數說明:
DEVICE:此配置文件應用到的設備
HWADDR:對應的設備的MAC地址
BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp
NM_CONTROLLED: NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議CentOS6為“no
ONBOOT:在系統引導時是否激活此設備
TYPE:接口類型;常見有的Ethernet, Bridge
UUID:設備的惟一標識
IPADDR:指明IP地址
NETMASK:子網掩碼 或者PREFIX=CIDR格式掩碼
GATEWAY: 默認網關
DNS1:第一個DNS服務器指向
DNS2:第二個DNS服務器指向
USERCTL:普通用戶是否可控制此設備
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
修改配置文件後,需重啟服務生效,永久有效。
CentOS 6重啟操作:service network restart
CentOS 7重啟操作:systemctl restart network.service
4、TUI工具
通過文本命令方式執行程序,具體操作如下
CentOS 6 系統:命令行輸入setup命令,選擇Network Configutations
CentOS 7 系統 : 命令行輸入nmtui命令,選擇Edit aconnection
二、網絡狀態探測常用工具
1、netstat
netstat命令用來打印Linux中網絡系統的狀態信息,可讓你得知整個Linux系統的網絡情況。
常用選項:
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處於監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
-r: 顯示內核路由表
實例:
列出所有端口 (包括監聽和未監聽的)
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
列出所有處於監聽狀態的 Sockets
netstat -l #只顯示監聽端口
netstat -lt #只列出所有監聽 tcp 端口
netstat -lu #只列出所有監聽 udp 端口
netstat -lx #只列出所有監聽 UNIX 端口
持續輸出netstat信息
netstat -c #每隔一秒輸出網絡信息
顯示系統不支持的地址族(Address Families)
netstat --verbose
並不是所有的進程都能找到,沒有權限的會不顯示,使用 root 權限查看所有的信息。
netstat -ap | grep ssh
找出運行在指定端口的進程:
netstat -an | grep ‘:80‘
2、ss [OPTION]... [FILTER]
netstat通過遍歷proc來獲取socket信息, ss使用netlink與內核tcp_diag模塊通信獲取socket信息。ss的優勢在於它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。
選項:
-h:顯示幫助信息;
-V:顯示指令版本信息;
-n:不解析服務名稱,以數字方式顯示;
-a:顯示所有的套接字;
-l: 顯示處於監聽狀態的套接字;
-o:顯示計時器信息;
-m:顯示套接字的內存使用情況;
-p:顯示使用套接字的進程信息;
-i:顯示內部的TCP信息;
-4:只顯示ipv4的套接字;
-6:只顯示ipv6的套接字;
-t:只顯示tcp套接字;
-u:只顯示udp套接字;
-d:只顯示DCCP套接字;
-w:僅顯示RAW套接字;
-x:僅顯示UNIX域套接字。
常見用法
ss -l 顯示本地打開的所有端口
ss -pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的UDP Socekt
ss -o state established ‘( dport = :ssh or sport = :ssh)‘ 顯示所有已建立的ssh連接
ss -o state established ‘( dport = :http or sport =:http )‘ 顯示所有已建立的HTTP連接
ss -s 列出當前socket詳細信息
LINUX 紅帽系列系統網絡管理常用方法