网络命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络命令相关的知识,希望对你有一定的参考价值。

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

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


8.1.ifconfig

功能:配置打印网络接口

语法:ifconfig [interface]

           ifconfig interface [aftype] options | address ...

常用选项:

up:启用网卡

down:停用网卡

-a:显示所有网卡信息

示例:

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

技术分享

技术分享

eth0启用又显示了

[[email protected] ~]# ifconfig -a  #显示所有网卡信息
[[email protected] ~]# ifconfig eth0:0 192.168.10.1/24 设置临时网卡

技术分享

8.2.mii-tool

功能:查看操作接口状态

示例:

[[email protected] ~]# mii-tool eth0  #查看网卡状态,以前的虚拟机里不支持,现在vmware的版本里是支持的
eth0: negotiated 100baseTx-FD, link ok   #网卡连接ok
# mii-tool eth0
eth0: no link--代表网线和网卡没连

8.3.ethtool 

功能:查询和设置网络硬件信息

示例:

[[email protected] ~]# 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框架

示例:

[[email protected] ~]# 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
[[email protected] ~]# 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
[[email protected] ~]# 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
[[email protected] ~]# ip addr add dev eth0 192.168.11.1/24 label eth0:1
[[email protected] ~]# 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
[[email protected] ~]# ip addr del dev eth0 192.168.10.1  #删除临时及网卡
[[email protected] ~]# ip addr flush eth0  #刷新网络设备

技术分享

 说明:ip地址也被清除了

[[email protected] ~]# ip route add 192.168.20.0/24 via 192.168.19.54  #设置一条静态路由
[[email protected] ~]# 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 
[[email protected] ~]# ip route del 192.168.20.0/24    #删除刚刚设置的路由
[[email protected] ~]# 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 等

示例:

[[email protected] ~]# 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
#添加到主机的路由
[[email protected] ~]# route add -host 192.168.6.1 dev eth0
[[email protected] ~]# route add -host 192.168.6.12 gw 192.168.6.1
#添加到网络的路由
[[email protected] ~]# route add -net 192.168.6.1 netmask 255.255.255.0 eth0
[[email protected] ~]# route add -net 192.168.6.1 netmask 255.255.255.0 eth0 gw 192.168.6.2
[[email protected] ~]# route add -net 192.168.6.1/24
#添加默认网关
[[email protected] ~]# route add default gw 1.1.1.2
#删除路由
[root[email protected] ~]# route del -host 192.168.6.1 dev eth0
[[email protected] ~]# route del -net  192.168.6.1 netmask 255.255.255.0 eth0
[[email protected] ~]# route del  default gw 1.1.1.2

8.6.ping

功能:发送目标主机ICMP的网络请求

常用选项:

-c:次数

示例:

[[email protected] ~]# 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  #端口请求

示例:

[[email protected] ~]# 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
[[email protected] ~]# 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  显示每个协议统计信息

示例:

[[email protected] ~]# 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  
[[email protected] ~]# 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   
[[email protected] ~]# netstat -ulnap    #显示所有udp连接,目前没有udp连接,所以为空
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
[[email protected] ~]# 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连接状态信息

示例:

[[email protected] ~]# 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
[[email protected] ~]# ss -u -a  #显示所有udp连接
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port
[[email protected] ~]# 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        
[[email protected] ~]# 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)
[[email protected] ~]# ss -o state TIME_WAIT #显示所有的timeout,这里没有的
ss: no socket states to show with such filter

本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1930602

以上是关于网络命令的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

VSCode自定义代码片段15——git命令操作一个完整流程