网卡配置管理命令:ip, ifconfig,mii-tool,ethtool,ping,netstat,ss,

路由设置管理命令:route,traceroute ,tracert


8.1.ifconfig

功能:配置打印网络接口

语法:ifconfig [interface]

           ifconfig interface [aftype] options | address ...

常用选项:

up:启用网卡

down:停用网卡

-a:显示所有网卡信息

示例:

[root@localhost ~]# ifconfig eth0  #显示指定网卡信息
[root@localhost ~]# ifconfig eth0 down #停用网卡,eth0信息不显示了

网络命令(9)_第1张图片

网络命令(9)_第2张图片

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:  mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  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:  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:  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:  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:  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:  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:  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  #刷新网络设备

网络命令(9)_第3张图片

 说明: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

网络命令(9)_第4张图片

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