学点Linux命令没坏处(网络)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本章一起了解下Linux中网络基础,分别从一下几个方面来学习:网络的状态 网络的配置 网络监控 网络连接。

前言


本章一起了解下Linux中网络基础,分别从一下几个方面来学习:网络的状态 网络的配置 网络监控 网络连接。

网络异常,图片无法展示
|

Linux中网络命令


  • 显示查询,在linux查询网络状态的有以下命令:ifconfig(像是网络信息) route(显示路由表) netstat(显示网络状态) ss(显示网络状态) arp(arp命令用于操作本机的arp缓存区,它可以显示arp缓存区中的所有条目、删除指定的条目或者添加静态的IP地址与MAC地址的对应关系。) nmap(网络探测工具,非内置命令需要安装) nslookup(常用的域名解析查询工具。) dig(域名查询工具) host (域名解析查询工具。)
//ifconfig:配置或显示网络接口信息(List of possible hardware types:)
[root@localhost ~]# ifconfig  #<===查看机器上所有激活的网卡
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a9d2:ba42:8306:8177  prefixlen 64  scopeid 0x20<link>
        inet6 240e:388:8221:2c00:1cd8:fd91:cb44:ec62  prefixlen 64  scopeid 0x0<global>
        ether 04:7d:7b:39:95:ab  txqueuelen 1000  (Ethernet)
        RX packets 2435833  bytes 535444996 (510.6 MiB)
        RX errors 2  dropped 0  overruns 0  frame 1
        TX packets 2121493  bytes 318310278 (303.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xf4600000-f4620000 
#===>ifconfig + 网卡名:显示指定网卡
#===>ifconfig + 网卡名 + up/down:启动、关闭网卡
#===>ifconfig + 网卡名 + ip地址:修改网卡ip地址
#===>ifconfig + 网卡名 + hw + ether + 网卡地址:修改网卡地址
//route 显示或管理路由表,主要管理的是静态路由
[root@localhost demo]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 enp0s25
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s25
//netstat 查看网络状态 -r -g -s -n -a(显示处于非监听/监听状态的socket信息)
[root@localhost demo]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost.localdo:27017 121.4.59.78:58206       ESTABLISHED
tcp        0      0 localhost.localdo:27017 121.4.59.78:58192       ESTABLISHED
....
//netstat命令用于显示本机网络的连接状态、运行端口和路由表等信息。
[root@VM-12-10-centos ~]# netstat -an #<====显示所有的连接信息>
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 10.0.12.10:40340        169.254.0.55:8080       TIME_WAIT  
...
// 以上命令语句的作用为显示所有TCP和UDP正在监听的连接信息。
[root@VM-12-10-centos ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      228480/mongod   
...
//显示路由表
[root@VM-12-10-centos ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.12.1       0.0.0.0         UG        0 0          0 eth0
10.0.12.0       0.0.0.0         255.255.252.0   U         0 0          0 eth0
//ss命令是类似并将取代netstat的工具,它能用来查看网络状态信息,包括TCP、UDP连接、端口等。它的优点是能够显示更多更详细的有关网络连接状态的信息,而且比netstat更快速更高效。
//显示所有socket连接
[root@VM-12-10-centos ~]# ss -an
Netid        State         Recv-Q        Send-Q                                                            Local Address:Port                                    Peer Address:Port             Process        
nl           UNCONN        0             0                                                                             0:981585547                                           *                                
nl           UNCONN        0             0                                                       
...
//统计当前的established closed orphaned和waiting的TCP socket数量
[root@VM-12-10-centos ~]# ss -s
Total: 219
TCP:   34 (estab 28, closed 0, orphaned 0, timewait 0)
Transport Total     IP        IPv6
RAW       1         0         1        
UDP       3         2         1        
TCP       34        5         29       
INET      38        7         31       
...
//arp是查看缓存信息(arp缓存就是IP地址和MAC地址关系缓存列表)的详细信息  详细信息2
//在局域网中,当主机或其它三层网络设备有数据要发送给另一台主机或三层网络设备时,需要知道对方的网络层地址(即IP地址)。但是仅有IP地址是不够的,因为IP报文必须封装成帧才能通过物理网络发送,因此发送方还需要知道接收方的物理地址(即MAC地址),这就需要一个通过IP地址获取物理地址的协议,以完成从IP地址到MAC地址的映射。地址解析协议ARP即可实现将IP地址解析为MAC地址。
//arp:地址解析协议(Address Resolution Protocol),主要功能是根据IP地址获取物理地址
[root@VM-12-10-centos ~]# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.12.1                ether   fe:ee:5e:4d:d7:bb   C                     eth0

nmap:功能全面的端口扫描工具,此外还具备寻找目标网络中的在线主机文档地址,常用的扫描如下

  • SYN扫描,使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,nmap -sS ***/24
  • ping扫描,用ping的方式检查网络上哪些主机正在运行。 nmap -sP ***/24
[root@zz ~]# nmap 192.168.1.10 #<====扫描主机开放的服务>
Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-22 19:18 CST
Nmap scan report for 192.168.1.10
Host is up (0.000017s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
8080/tcp open  http-proxy
Nmap done: 1 IP address (1 host up) s
[root@zz ~]# nmap -p 8080 192.168.1.10 #<====指定端口扫描
Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-22 19:24 CST
Nmap scan report for 192.168.1.10
Host is up (0.00013s latency).
PORT     STATE SERVICE
8080/tcp open  http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.29 seconds
[root@zz ~]# nmap -sP 192.168.123.1/24
Starting Nmap 6.40 ( http://nmap.org ) at 2022-07-22 19:30 CST
Nmap done: 256 IP addresses (0 hosts up) scanned in 206.24 seconds
  • nslookup dig host这三个都是域名查询工具,区别如下:nslookup可以以交互的方式查询 dig用于测试dns系统(不会查询host)host以更简洁的方式显示查询结果
// nslookup交互模式
[root@zz ~]# nslookup
> www.baidu.com
Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 180.101.49.12
Name:   www.a.shifen.com
Address: 180.101.49.11
[root@zz ~]# nslookup
> set type=MX #<==== set用来设置查询方式 MX表示邮件交换记录,邮件交换记录 (MX record)是域名系统(DNS)中的一种资源记录类型>
> www.baidu.com
Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Authoritative answers can be found from:
a.shifen.com
        origin = ns1.a.shifen.com
        mail addr = baidu_dns_master.baidu.com
        serial = 2207240004
        refresh = 5
        retry = 5
        expire = 2592000
        minimum = 3600
> 
[root@zz ~]# nslookup www.baidu.com #<====非交互方式查询>
Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 180.101.49.11
Name:   www.a.shifen.com
Address: 180.101.49.12
[root@zz ~]# nslookup -ty=ptr 202.96.128.166 #<===反向域名解析 ptr表示反向域名解析>
Server:         192.168.1.1
Address:        192.168.1.1#53
Non-authoritative answer:
166.128.96.202.in-addr.arpa     name = cache-b.guangzhou.gd.cn.
Authoritative answers can be found from:
[root@zz ~]# dig www.baidu.com #<====域名解析>
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31412
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.baidu.com.                 IN      A
;; ANSWER SECTION:
www.baidu.com.          600     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       600     IN      A       180.101.49.11
www.a.shifen.com.       600     IN      A       180.101.49.12
;; Query time: 4 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun Jul 24 16:42:34 CST 2022
;; MSG SIZE  rcvd: 90
[root@zz ~]# dig -x 101.200.195.98 #<=== dig -x ip 反向域名解析>
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> -x 101.200.195.98
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4919
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;98.195.200.101.in-addr.arpa.   IN      PTR
;; AUTHORITY SECTION:
200.101.in-addr.arpa.   300     IN      SOA     rdns1.alidns.com. dnsmgr.alibaba-inc.com. 2015011391 1800 600 1814400 300
;; Query time: 24 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun Jul 24 16:52:07 CST 2022
;; MSG SIZE  rcvd: 127
[root@zz ~]# host www.baidu.com #<==== host + domain 更简单的显示查询内容>
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.101.49.11
www.a.shifen.com has address 180.101.49.12
//ping命令可用于测试主机之间网络的连通性。执行ping命令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而可得知该主机运作正常。
[root@zz ~]# ping 192.168.1.12
PING 192.168.1.12 (192.168.1.12) 56(84) bytes of data.
64 bytes from 192.168.1.12: icmp_seq=1 ttl=64 time=4.16 ms
64 bytes from 192.168.1.12: icmp_seq=2 ttl=64 time=2.92 ms
64 bytes from 192.168.1.12: icmp_seq=3 ttl=64 time=2.71 ms
64 bytes from 192.168.1.12: icmp_seq=4 ttl=64 time=3.22 ms
64 bytes from 192.168.1.12: icmp_seq=5 ttl=64 time=2.72 ms
[root@zz ~]# ping -c 3 -i 3 192.168.1.12 #<==== -c:ping次数 -i:每次ping的间隔
PING 192.168.1.12 (192.168.1.12) 56(84) bytes of data.
64 bytes from 192.168.1.12: icmp_seq=1 ttl=64 time=5.49 ms
64 bytes from 192.168.1.12: icmp_seq=2 ttl=64 time=3.64 ms
64 bytes from 192.168.1.12: icmp_seq=3 ttl=64 time=3.13 ms
--- 192.168.1.12 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6007ms
rtt min/avg/max/mdev = 3.139/4.092/5.492/1.012 ms

注:ping命令的输出信息中含有TTL值。TTL(Time To Life)称为生存期,它是ICMP报文在网络上的存活时间。不同的操作系统发出的ICMP报文的生存期各不相同,常见的生存期为32、64、128和255等。TTL值反映了ICMP报文所能够经过的路由器数目,每经过一个路由器,路由器都会将其数据包的生存期减去1,如果TTL值变为0,则路由器将不再转发此报文。 traceroute命令用于显示网络数据包传输到指定主机的路径信息,追踪数据传输路由状况。默认数据包大小是60字节(IPv4)或80字节(IPv6),用户可另行设置。它与Windows下的tracert命令类似。

[root@zz ~]# traceroute juejin.cn
traceroute to juejin.cn (61.174.42.228), 30 hops max, 60 byte packets
 1  gateway (192.168.1.1)  7.137 ms  7.088 ms  7.012 ms
 2  1.72.65.222.broad.xw.sh.dynamic.163data.com.cn (222.65.72.1)  10.522 ms  10.495 ms  11.113 ms
 3  61.152.54.133 (61.152.54.133)  9.409 ms  9.369 ms  9.305 ms
 4  101.95.88.142 (101.95.88.142)  9.747 ms 61.152.25.202 (61.152.25.202)  9.198 ms 61
 .....
 8  * * *

注:记录按序列号从1开始,每个记录就是一跳,每跳表示一个网关,我们看到每行有3个时间,单位是ms,其实就是-q的默认参数值为3。探测数据包向每个网关发送3个数据包之后,网关响应并返回的时间。 有时我们traceroute一台主机时,会看到有一些星号。出现这样的情况,可能是因为网络设备封掉或丢弃了返回的信息,所以我们得不到返回的时间。arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包检查局域网内所有设备的硬件地 址。

[root@zz ~]# arping -f 192.168.1.12 #<=== -f 表示第一次收到返回就结束了
ARPING 192.168.1.12 from 192.168.1.10 enp0s25
Unicast reply from 192.168.1.12 [64:90:C1:35:D0:2E]  5.241ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
  • 配置网络(启用、禁用网络接口、配置路由、激活、禁用),主要有以下命令:ifconfig(配置网络)ifup(激活网络接口) ifdown(禁用网络接口) ip(网络配置工具)
//ifup+网卡名:激活网络接口 
[root@zz ~]# ifup enp0s25
//ifdown + 网卡名:禁用网络接口
[root@zz ~]# ifdown enp0s25
  • 网络监听:tcpdump(监听网络流量)tcpdump命令是一个截获网络数据包的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来以提供分析。
[root@zz ~]# tcpdump #<====查看所有网络流量>
tcpdump: ve ....
10 packets captured
11 packets received by filter
0 packets dropped by kernel
[root@zz ~]# tcpdump -i enp0s25 port 8080 #<====指定端口监听>
tcpdump: verbose output suppressed, use -v or -v

tcpdump是一个非常强大并且好用的命令,这是只做简单的介绍,后续还要在实践中多多练习。

  • 邮件相关:mail(发送和接收邮件) mailq(显示邮件传输队列),mail命令是命令行的电子邮件发送和接收的工具。mail命令是个软链接,真实的程序文件是mailx: mail命令会默认使用本地postfix(sendmail)发送邮件,这就要求本地的机器必须安装和启动相关服务,这样不仅配置非常麻烦,而且还会带来不必要的资源占用。还有一个问题,很多时候,所发送的邮件会被视为垃圾邮件
[root@zhaokai ~]# mailq
Mail queue is empty
[root@zhaokai ~]# mailq -v
postqueue: name_mask: all
...
[root@zhaokai postfix]# mail -s "Hello qq" zhaokai1155@outlook.com #<====mail -s指定邮件主题,知否输入邮件内容,按Ctrl + D发送
this is a mail;
EOT


相关文章
|
3天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
19 3
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
16 2
|
3天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
18 3
|
6天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
31 6
|
7天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
21 7
|
6天前
|
网络协议 Linux
使用nmcli命令设置IP地址并排查网络故障
nmcli 是一个功能强大的网络管理工具,通过它可以轻松配置IP地址、网关和DNS,同时也能快速排查网络故障。通过正确使用nmcli命令,可以确保网络配置的准确性和稳定性,提高系统管理的效率。希望本文提供的详细步骤和示例能够帮助您更好地掌握nmcli的使用方法,并有效解决实际工作中的网络问题。
13 2
|
7天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
21 4
|
6天前
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
19 2
|
7天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
11 2
|
7天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
25 3