網絡相關命令
常用命令
ifcfg家族:
ifconfig:配置IP,NETMASK route :路由 netstat : 狀態及統計數據查看iproute2家族
ip 系列 addr:地址和掩碼 link :接口 route:路由 ss:狀態及統計數據查看centos 7 nm(Network Manager)家族
特點:既能夠立即生效,又能修改配置文件 nmcli:命令行工具 bmtul:text windows注意:
(1)DNS服務器指定 一般要編輯配置文件: /etc/resolv.conf (2)主機名:只是用來表示本地主機 centos6 : 臨時:hostname 配置文件 :/etc/sysconfig/network CentOS 7 :hostnamectl 這個命令修改的是 /etc/hostname配置文件:
RedHat及相關發行版 /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
ifcfg命令家族: ifconfig, route, netstat
ifconfig命令:接口及地址查看和管理
語法:ifconfig [INTERFACE] 顯示網絡信息
# ifconfig -a:顯示所有接口,包括inactive狀態的接口;
語法:ifconfig interface [aftype] options | address … 啟動或關閉某塊網卡
# ifconfig IFACE(接口名) IP/MASK [up|down]
# ifconfig IFACE(接口名) IP netmask NETMASK
options: [-]promisc 注意:立即送往內核中的TCP/IP協議棧,并生效;
管理IPv6地址:
add addr/prefixlen del addr/prefixlen
route命令:路由查看及管理
路由條目類型: 主機路由:目標地址為單個IP; 網絡路由:目標地址為IP網絡; 默認路由:目標為任意網絡,0.0.0.0/0.0.0.0
查看:
# route -n 查看路由表(不會反解地址和端口號)
添加:
語法:route add [-net|-host] target [netmask Nm] ( [gw GW] [[dev] If]) 刪除的話括號內可以不寫
示例: route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 到達10.0.0.0這個地址的下一跳是192.168.10.1 (注意下一跳的地址必須與主機在同一網段中,后邊的 dev 。。??梢圆粚懀? 兩種寫法 route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一條到達244.0.0.0的路由。 route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 添加默認網關 route add default gw 192.168.10.1
刪除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
示例: route del -net 10.0.0.0/8 gw 192.168.10.1 刪除 10.0.0.0/8 這一條路由條目 刪除目標:192.168.1.3 網關:172.16.0.1 # route del -host 192.168.1.3 刪除默認網關 route del default 一個網絡的兩個網段的主機如果想要ping通,就需要自自己吧自己設置成為路由!即 GETWAY=自己 這時route -n查看后就能知道了! 配置動態路由 通過守護進程獲取動態路由 ? 安裝quagga包,支持多種格式的RIP、OSPF和BGP ? 命令vtysh配置(同思科路由器配置)
netstat命令:
gn顯示網絡連接路由表,路由數據,偽裝連接,偽裝數據,顯示多播成員關系!
顯示路由表:
netstat -rn
-r:顯示內核路由表
-n:數字格式,不反解IP地址至主機名;
顯示網絡連接:
netstat
[—tcp|-t] [—udp|-u] [—udplite|-U] [—sctp|-S] [—raw|-w]
[—listening|-l] [—all|-a] [—numeric|-n] [—extend|-e[—extend|-e]]
[—program|-p]
-t:TCP協議的相關連接,連接均有其狀態;FSM(Finate State Machine);
-u:UDP相關的連接
-w:raw socket相關的連接
-l:處于監聽狀態的連接
-a:所有狀態
-n:以數字格式顯示IP和Port;
-e:擴展格式
-p:顯示相關的進程及PID;
常用組合:
netstat -tan(所有狀態的連接), -uan, -tnl, -unl, -tunlp
-
傳輸層協議:
tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后還要拆除連接;
udp:無連接的協議;直接發送數據報文;
顯示接口的統計數據:
netstat {—interfaces|-I|-i} [iface] [—all|-a] [—extend|-e] [—verbose|-v] [—program|-p] [—numeric|-n]
-
所有接口:
netstat -i
-
指定接口:
netstat -I<IFace>
[root@localhost ~/bin ]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 647978 0 0 0 62975 0 0 0 BMRU eno16777 1500 - no statistics available - BMRU lo 65536 459 0 0 0 459 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU [root@localhost ~/bin ]# netstat -Ieno16777736 Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eno16777 1500 648191 0 0 0 62994 0 0 0 BMRU
ifup/ifdown命令:
注意:通過配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE來識別接口并完成配置;
配置主機名:
hostname命令:
查看:hostname 配置:hostname HOSTNAME 當前系統有效,重啟后無效;
hostnamectl命令(CentOS 7):
hostnamectl status:顯示當前主機名信息;
hostnamectl set-hostname:設定主機名,永久有效;
[root@localhost ~/bin ]# hostnamectl set-hostname QZX [root@localhost ~/bin ]# cat /etc/hostname qzx ------------此命令改動的是/etc/hostname 下次登錄就能生效了 配置文件:/etc/sysconfig/network HOSTNAME=<HOSTNAME> 注意:此方法的設置不會立即生效; 但以后會一直有效;
配置DNS服務器指向:
配置文件:/etc/resolv.conf
nameserver 語法:
nameserver DNS_SERVER_IP
配置DNS服務器 為….
如何測試(host/nslookup/dig):
# dig -t A FQDN FQDN --> IP dig -t A www.baidu.com --- ip地址 # dig -x IP IP --> FQDN
iproute家族:
ip命令:
功能:查看、管理路由、策略路由、隧道
語法:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }
注意: OBJECT可簡寫,各OBJECT的子命令也可簡寫;
ip link: network device configuration
ip link set – 修改設備屬性
dev NAME (default):指明要管理的設備,dev關鍵字可省略; ip link set dev eth1 up up和down: multicast on或multicast off:啟用或禁用多播功能; name NAME:重命名接口 mtu NUMBER:設置MTU的大小,默認為1500; netns PID:ns為namespace,用于將接口移動到指定的網絡名稱空間;
ip link show – 顯示網絡屬性(display device attributes)
ip link help - 顯示簡要使用幫助;
ip netns: – 改網絡manage network namespaces.
ip netns list:列出所有的netns ip netns add NAME:創建指定的netns ip netns del NAME:刪除指定的netns ip netns exec NAME COMMAND:在指定的netns中運行命令
ip address – protocol address management.
ip address add – add new protocol address
ip addr add IFADDR dev IFACE [label NAME]:為額外添加的地址指明接口別名(為了讓ifconfig能顯示); [broadcast ADDRESS]:廣播地址;會根據IP和NETMASK自動計算得到; [scope SCOPE_VALUE]: global:全局可用; link:接口可用; host:僅本機可用;
也可以多次執行,給網卡添加多個地址
ip address delete – delete protocol address
ip addr delete IFADDR dev IFACE
ip address show - look at protocol addresses ip addr list [IFACE]:顯示接口的地址; ip address flush - flush protocol addresses ip addr flush dev IFACE ip addr flush dev eth0 label eth0:0 清空指定的 eth0
ip route – routing table management
ip route add – add new route
ip route change – change route
ip route replace – change or add new one
ip route add TYPE PREFIX via(下一跳) GW [dev IFACE] [src SOURCE_IP]
示例: # ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100 # ip route add default via GW
-
ip route delete – delete route
-
ip route del TYPE PRIFIX
示例:
# ip route delete 192.168.1.0/24 -
ip route show – list routes
TYPE PRIFIX
-
ip route flush – 清空路由表 flush routing tables
TYPE PRIFIX 可以指定刪除某類地址
-
ip route get – 獲取單條路由 get a single route
ip route get TYPE PRIFIX 示例:ip route get 192.168.0.0/24
ss命令:
語法: ss [options] [ FILTER ]
選項:
-
-t:TCP協議的相關連接
-
-u:UDP相關的連接
-
-w:raw socket相關的連接
-
-l:監聽狀態的連接
-
-a:所有狀態的連接
-
-n:數字格式
-
-p:相關的程序及其PID
-
-e:擴展格式信息
-
-m:內存用量
-
-o:計時器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態: TCP FSM: LISTEN:監聽 ESTABLISEHD:建立的連接 FIN_WAIT_1: FIN_WAIT_2: SYN_SENT: SYN_RECV: CLOSED:
EXPRESSION:過濾!
dport =
sport =
自定義過濾示例:’( dport = :22 or sport = :22)’~]# ss -tan '( dport = :22 or sport = :22 )' 過濾:tcp連接中只要目的端口 或 源端口為22的
ss -tan state ESTABLISHED
只看建立連接的條目
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詳細信息
配置文件:
IP/NETMASK/GW/DNS等屬性的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名稱;
路由的相關配置文件:
/etc/sysconfig/networkj-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE
說明參考/usr/share/doc/initscripts-9.49.30sysconfig.txt 、
配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通過大量參數來定義接口的屬性;其可通過vim等文本編輯器直接修改,也可以使用專用的命令的進行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
ifcfg-IFACE配置文件參數:
-
DEVICE:此配置文件對應的設備的名稱;
-
ONBOOT:在系統引導過程中,是否激活此接口;
-
UUID:此設備的惟一標識;
-
IPV6INIT:是否初始化IPv6;
-
BOOTPROTO:激活此接口時使用什么協議來配置接口屬性,常用的有dhcp、bootp、static、none;
-
TYPE:接口類型,常見的有Ethernet, Bridge;
-
DNS1:第一DNS服務器指向;
-
DNS2:備用DNS服務器指向;
-
DOMAIN:DNS搜索域;
-
IPADDR: IP地址;
-
NETMASK:子網掩碼;CentOS 7支持使用PREFIX以長度方式指明子網掩碼;
-
GATEWAY:默認網關;
-
USERCTL:是否允許普通用戶控制此設備;
-
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向 覆蓋本地手動指定的DNS服務器指向;默認為允許;(覆蓋到/etc/resolv.conf文件)
-
HWADDR:設備的MAC地址;
-
NM_CONTROLLED:是否使用NetworkManager服務來控制接口;建議CentOS6為“no” 禁止掉
網絡服務:
-
network
-
NetworkManager
CentOS 6 NetworkManager還處于試驗中,進行高級功能時盡量不要使用!CentOS 7已經很完善了 -
可以用 chkconfig —list 查看是否啟動
管理網絡服務:
CentOS 6: service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]
配置文件修改之后,如果要生效,需要重啟網絡服務; CentOS 6:# service network restart CentOS 7:# systemctl restart network.service
網關路由用到非默認時:/etc/sysconfig/network-scripts/route-IFACE
支持**兩種配置方式**,但不可混用; (1) 每行一個路由條目: TARGET via GW
(2) 每三行一個路由條目: ADDRESS#=TARGET NETMASK#=MASK GATEWAY#=NEXTHOP
給接口配置多個地址:
ip addr之外,ifconfig 或配置文件都可以;這只是當前狀態有效;重啟就無效了!
(1) ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL: eth0:0, eth0:1, ...
![]()
(2) 為別名添加配置文件(這樣就能永久有效了);
DEVICE=IFACE_LABEL BOOTPROTO:網卡別名不支持動態獲取地址; static, none
nmcli命令:
Centos 7專用
nmcli [ OPTIONS ] OBJECT { COMMAND | help } device - 顯示及管理網絡接口(ip link)show and manage network interfaces COMMAND := { status | show | connect | disconnect | delete | wifi | wimax } connection - start, stop, and manage network connections COMMAND := { show | up | down | add | edit | modify | delete | reload | load } modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value> 如何修改IP地址等屬性: # nmcli conn modify IFACE [+|-]setting.property value ipv4.address ipv4.gateway ipv4.dns1 ipv4.method manual
不如用 nmtui 命令!
配置好以后用 systemctl restart network.service 重啟下網絡服務
Centos 6 可以用setup
這兩個命令都是直接編輯的配置文件
原創文章,作者:qzx,如若轉載,請注明出處:http://www.www58058.com/44422
對網絡管理類命令總結的很詳細,也有自己的操作,如果能對個命令顯示結果進行分析,會讓文章更加具有實際意義。