網卡配置管理命令:ip, ifconfig,mii-tool,ethtool,ping,netstat,ss,
node
路由設置管理命令:route,traceroute ,tracertdocker
8.1.ifconfigwindows
功能:配置打印網絡接口centos
語法:ifconfig [interface]bash
ifconfig interface [aftype] options | address ...服務器
經常使用選項:網絡
up:啓用網卡框架
down:停用網卡ssh
-a:顯示全部網卡信息socket
示例:
[root@localhost ~]# ifconfig eth0 #顯示指定網卡信息 [root@localhost ~]# ifconfig eth0 down #停用網卡,eth0信息不顯示了
eth0啓用又顯示了
[root@localhost ~]# ifconfig -a #顯示全部網卡信息 [root@localhost ~]# ifconfig eth0:0 192.168.10.1/24 設置臨時網卡
8.2.mii-tool
功能:查看操做接口狀態
示例:
[root@localhost ~]# mii-tool eth0 #查看網卡狀態,之前的虛擬機裏不支持,如今vmware的版本里是支持的 eth0: negotiated 100baseTx-FD, link ok #網卡鏈接ok # mii-tool eth0 eth0: no link--表明網線和網卡沒連
8.3.ethtool
功能:查詢和設置網絡硬件信息
示例:
[root@localhost ~]# ethtool eth0 #查看網卡的工做模式等信息 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s # ethtool -s eth0 speed 10 duplex half autoneg off #改爲10M/s的速率,半雙工,關閉自動協商 # ethtool -s eth0 speed 100 duplex full autoneg on#再改回來
8.4.ip(重點掌握的,centos7對ifconfig已經弱化了)
功能:打印並設置路由、設備、策略路由和隧道配置信息
語法:語法十分複雜,這裏不一一列舉
經過ip組合衍生出好多命令
ip link 網絡設備配置命令
ip addr 管理網絡設備與協議,相對ip link,增長了對ip地址的管理
ip addrlabel ipv6的地址標籤
ip route 管理路由
ip rule 管理路由策略
ip tunnel 隧道配置
ip maddr 多播地址管理
ip mroute 多播路由管理
ip monitor 狀態監控
ip xfrm 設置xfrm,xfrm是一個ip框架
示例:
[root@localhost ~]# ip link show #查看默認網卡信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:a0:3f:29 brd ff:ff:ff:ff:ff:ff [root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:a0:3f:29 brd ff:ff:ff:ff:ff:ff inet 192.168.19.54/24 brd 192.168.19.255 scope global eth0 inet6 fe80::20c:29ff:fea0:3f29/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# ip addr show 跟ip addr顯示沒有什麼區別 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:a0:3f:29 brd ff:ff:ff:ff:ff:ff inet 192.168.19.54/24 brd 192.168.19.255 scope global eth0 inet6 fe80::20c:29ff:fea0:3f29/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# ip addr add dev eth0 192.168.11.1/24 label eth0:1 [root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:a0:3f:29 brd ff:ff:ff:ff:ff:ff inet 192.168.19.54/24 brd 192.168.19.255 scope global eth0 inet 192.168.10.1/24 brd 192.168.10.255 scope global eth0:0 inet 192.168.11.1/24 scope global eth0:1 添加臨時網卡及ip,這裏已經有顯示 inet6 fe80::20c:29ff:fea0:3f29/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# ip addr del dev eth0 192.168.10.1 #刪除臨時及網卡 [root@localhost ~]# ip addr flush eth0 #刷新網絡設備
說明:ip地址也被清除了
[root@localhost ~]# ip route add 192.168.20.0/24 via 192.168.19.54 #設置一條靜態路由 [root@localhost ~]# ip route show #查看已經生效了 192.168.20.0/24 via 192.168.19.54 dev eth0 192.168.19.0/24 dev eth0 proto kernel scope link src 192.168.19.54 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.19.2 dev eth0 [root@localhost ~]# ip route del 192.168.20.0/24 #刪除剛剛設置的路由 [root@localhost ~]# ip route 192.168.19.0/24 dev eth0 proto kernel scope link src 192.168.19.54 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.19.2 dev eth0
8.5.route
功能:打印設置路由表
經常使用選項:
-n:不使用通信協定或主機名稱,直接使用 IP 或 port number;
-ee:顯示更詳細的信息
增長 (add) 與刪除 (del) 路由的相關參數:
-net :添加到網絡的路由
-host :添加到主機的路由
netmask :子網掩碼設置
gw :下一跳地址
dev :下一跳網絡接口,後面接 eth0 等
示例:
[root@localhost ~]# route -n #查看路由表,netstat -rn也能夠查看 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.19.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.19.2 0.0.0.0 UG 0 0 0 eth0 #添加到主機的路由 [root@localhost ~]# route add -host 192.168.6.1 dev eth0 [root@localhost ~]# route add -host 192.168.6.12 gw 192.168.6.1 #添加到網絡的路由 [root@localhost ~]# route add -net 192.168.6.1 netmask 255.255.255.0 eth0 [root@localhost ~]# route add -net 192.168.6.1 netmask 255.255.255.0 eth0 gw 192.168.6.2 [root@localhost ~]# route add -net 192.168.6.1/24 #添加默認網關 [root@localhost ~]# route add default gw 1.1.1.2 #刪除路由 [root@localhost ~]# route del -host 192.168.6.1 dev eth0 [root@localhost ~]# route del -net 192.168.6.1 netmask 255.255.255.0 eth0 [root@localhost ~]# route del default gw 1.1.1.2
8.6.ping
功能:發送目標主機ICMP的網絡請求
經常使用選項:
-c:次數
示例:
[root@localhost ~]# ping -c 3 192.168.19.1 #不加-c會一直ping下去 PING 192.168.19.1 (192.168.19.1) 56(84) bytes of data. 64 bytes from 192.168.19.1: icmp_seq=1 ttl=128 time=0.125 ms 64 bytes from 192.168.19.1: icmp_seq=2 ttl=128 time=0.381 ms 64 bytes from 192.168.19.1: icmp_seq=3 ttl=128 time=0.386 ms --- 192.168.19.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.125/0.297/0.386/0.122 ms
8.7.traceroute
功能:將路由包跟蹤打印到網絡主機上
經常使用選項:
-I --icmp Use ICMP ECHO for tracerouting #ICMP協議請求路由包
-T --tcp Use TCP SYN for tracerouting #tcp協議請求路由包
-p port --port=port #端口請求
示例:
[root@localhost ~]# traceroute baidu.com traceroute to baidu.com (180.149.132.47), 30 hops max, 60 byte packets 1 192.168.19.2 (192.168.19.2) 0.086 ms 0.037 ms 0.041 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 說明:*號主要是服務器把udp數據包屏蔽了,全部沒有返回ICMP [root@localhost ~]# traceroute -T -p 80 baidu.com traceroute to baidu.com (180.149.132.47), 30 hops max, 52 byte packets 1 192.168.19.2 (192.168.19.2) 0.168 ms 0.072 ms 0.101 ms 2 180.149.132.47 (180.149.132.47) 42.414 ms 37.795 ms 38.718 ms
8.8.tracert
功能:將路由包跟蹤打印到網絡主機上 (windows上使用的命令)
-d:指定不將ip地址解析到主機名稱
-h:maximum_hops 指定躍點數以跟蹤到稱爲target_name的主機路由
w:等待由timeout對每一個應答指定的毫秒數
target_name:目標主機的名稱或ip地址
示例:
8.9.netstat
功能:打印網絡鏈接、路由表、接口統計信息、假裝鏈接和多播成員
經常使用選項:
-r 顯示路由表
-i 顯示接口表
-n 不解析名字
-p 顯示程序名 PID/Program
-l 顯示監聽的socket
-a 顯示全部socket
-o 顯示計時器
-Z 顯示上下文
-t 只顯示tcp鏈接
-u 只顯示udp鏈接
-s 顯示每一個協議統計信息
示例:
[root@localhost ~]# netstat -tlunap #顯示全部監聽端口 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 897/sshd tcp 0 96 192.168.19.54:22 192.168.19.1:7024 ESTABLISHED 15148/sshd tcp 0 0 192.168.19.54:22 192.168.19.1:7023 ESTABLISHED 15129/sshd tcp 0 0 :::22 :::* LISTEN 897/sshd tcp 0 0 :::80 :::* LISTEN 13764/httpd [root@localhost ~]# netstat -tlnap #顯示全部tcp鏈接 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 897/sshd tcp 0 0 192.168.19.54:22 192.168.19.1:7024 ESTABLISHED 15148/sshd tcp 0 0 192.168.19.54:22 192.168.19.1:7023 ESTABLISHED 15129/sshd tcp 0 0 :::22 :::* LISTEN 897/sshd tcp 0 0 :::80 [root@localhost ~]# netstat -ulnap #顯示全部udp鏈接,目前沒有udp鏈接,因此爲空 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name [root@localhost ~]# netstat -r #能夠顯示路由表信息 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.19.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 default 192.168.19.2 0.0.0.0 UG 0 0 0 eth0
8.10.ss
功能:另外一個比netstat更強大的socket查看工具
語法:ss [options] [ FILTER ]
經常使用選項:
-n 不解析名字
-a 顯示全部socket
-l 顯示全部監聽的socket
-o 顯示計時器
-e 顯示socket詳細信息
-m 顯示socket內存使用
-p 顯示進程使用的socket
-i 顯示內部TCP信息
-s 顯示socket使用匯總
-4 只顯示IPV4的socket
-0 顯示包socket
-t 只顯示TCP socket
-u 只顯示UDP socket
-d 只顯示DCCP socket
-w 只顯示RAW socket
-x 只顯示Unix域socket
-f FAMILY 只顯示socket族類型( unix, inet,inet6, link, netlink)
-A 查詢socket{all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D 將原始的TCP socket轉儲到文件
-F 從文件中讀取過濾信息
過濾:
-o state 顯示TCP鏈接狀態信息
示例:
[root@localhost ~]# ss -t -a #顯示全部tcp鏈接 State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::ssh :::* LISTEN 0 128 *:ssh *:* LISTEN 0 511 :::http :::* ESTAB 0 0 192.168.19.54:ssh 192.168.19.1:7024 ESTAB 0 0 192.168.19.54:ssh 192.168.19.1:7023 [root@localhost ~]# ss -u -a #顯示全部udp鏈接 State Recv-Q Send-Q Local Address:Port Peer Address:Port [root@localhost ~]# ss -s #顯示全部socket Total: 287 (kernel 295) TCP: 6 (estab 2, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 2 Transport Total IP IPv6 * 295 - - RAW 0 0 0 UDP 0 0 0 TCP 5 3 2 INET 5 3 2 FRAG 0 0 0 [root@localhost ~]# ss -o state established #顯示已經創建的鏈接 Recv-Q Send-Q Local Address:Port Peer Address:Port 0 0 192.168.19.54:ssh 192.168.19.1:7024 timer:(keepalive,25min,0) 0 96 192.168.19.54:ssh 192.168.19.1:7023 timer:(on,248ms,0) [root@localhost ~]# ss -o state TIME_WAIT #顯示全部的timeout,這裏沒有的 ss: no socket states to show with such filter
8.11.nc
功能:是一個功能強大的網絡工具,全稱是netcat。查看TCP和UDP鏈接和偵聽
語法:nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通訊端口>][-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通訊端口...]
經常使用選項:
-g <網關> 設置路由器躍程通訊網關
-G <指向器數目> 設置來源路由指向器,其數值爲4的倍數
-h 在線幫助
-i interval<延遲秒數> 指定間隔時間發送和接受行文本
-l 監聽模式,管控傳入的資料
-n 直接使用IP地址,而不經過域名服務器
-o <輸出文件> 指定文件名稱,把往來傳輸的數據以16進制文件保存
-p <通訊端口>指定本地源端口
-r 指定本地和遠程主機端口
-s <來源位址>指定本地源IP地址
-u 使用udp協議,默認是tcp
-v 執行過程輸出
-w <超時秒數> timeout 鏈接超時時間
-x proxy_address[:port] 請求鏈接主機使用代理地址和端口
-z 指定掃描監聽端口,不發送任何數據
示例:
安裝nc [root@localhost log]# yum install -y nc tcp端口掃描: [root@localhost log]# nc -v -z -w2 127.0.0.1 1-100 #掃描本地tcp端口1-100nc: connect to 127.0.0.1 port 1 (tcp) failed: Connection refused......Connection to 127.0.0.1 22 port [tcp/ssh] succeeded! [root@localhost log]# nc -z 127.0.0.1 1-65535 #掃描監聽的端口 Connection to 127.0.0.1 22 port [tcp/ssh] succeeded! Connection to 127.0.0.1 35186 port [tcp/*] succeeded! 簡單聊天工具: [root@docker-node5 ~]# nc -l 1234 #在192.168.19.6上開啓1234端口做爲聊天端口 [root@localhost log]# nc 192.168.19.6 1234 #在192.168.19.20一樣開啓1234端口爲聊天端口 開始聊天: [root@localhost log]# nc 192.168.19.6 1234 dff [root@docker-node5 ~]# nc -l 1234 這邊的屏幕就會輸出剛纔的dff信息 dff 使用ctrl+C(或D)退出 拷貝文件: [root@docker-node5 ~]# nc -l 1234 > test.txt [root@localhost log]# nc 192.168.19.6 1234 < test.txt