網絡命令(9)

網卡配置管理命令: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信息不顯示了

wKiom1kr9GLAtTjBAAAd8N9QkrI286.png-wh_50

wKioL1kr9GPgwDINAAAq_dQHGCc816.png-wh_50

eth0啓用又顯示了

[root@localhost ~]# ifconfig -a  #顯示全部網卡信息
[root@localhost ~]# ifconfig eth0:0 192.168.10.1/24 設置臨時網卡

wKiom1kr9JvRBCiSAAAPYk7Ea5Q898.png-wh_50

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  #刷新網絡設備

wKiom1kr9YnwrXYyAAAiVm0vkX8227.png-wh_50

 說明: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地址

示例:

wKiom1kr9yfTpjVdAAAKvJPS0Js366.png-wh_50

wKioL1kr91PzPXSlAAAWejyGmLc046.png-wh_50

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
相關文章
相關標籤/搜索