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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 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 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
16 4
|
9天前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
166 73
|
2天前
|
Linux Shell
Linux 中 Tail 命令的 9 个实用示例
Linux 中 Tail 命令的 9 个实用示例
20 6
Linux 中 Tail 命令的 9 个实用示例
|
7天前
|
Linux 应用服务中间件 nginx
|
3天前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
8 1
|
8天前
|
Ubuntu Linux Shell
Linux系统命令 安装和文件相关命令
本文档详细介绍了Linux系统中的常用命令,包括软件安装卸载命令如`dpkg`和`apt-get`,压缩与解压命令如`gzip`、`bzip2`和`xz`,以及`tar`命令用于打包和解包。此外还介绍了文件分割命令`split`,文件操作命令如`cat`、`head`、`tail`、`more`、`less`等,管道命令和`wc`、`grep`、`find`、`cut`、`sort`、`uniq`、`diff`等实用工具。最后,文档还讲解了文件属性相关的命令如`chmod`、`chown`、`chgrp`以及创建硬链接和软链接的`ln`命令。
|
8天前
|
Linux Shell 网络安全
Linux 用户管理命令
本文详细介绍了Linux系统中的各类常用命令,包括用户管理(如`adduser`, `usermod`, `passwd`等)、系统操作(如关机、重启、注销)、磁盘管理(如`df`, `mkfs`, `mount`)及网络管理(如`ifconfig`, `ping`, `ssh`)等。通过具体示例展示了每个命令的基本用法和应用场景,帮助用户更好地理解和掌握Linux系统的管理和操作技巧。
|
8天前
|
存储 Ubuntu Linux
linux中的find 命令详细用法
本文介绍了如何将 `find` 命令与 `exec` 结合使用,通过具体示例展示了多种应用场景,如显示文件属性、重命名文件、收集文件大小、删除特定文件、执行工具、更改文件所有权和权限、收集 MD5 值等。文章还探讨了 `{} \;` 和 `{} +` 的区别,并演示了如何结合 `grep` 命令进行内容搜索。最后,介绍了如何在一个 `find` 命令中使用多个 `exec` 命令。这为 Linux 用户提供了强大的文件管理和自动化工具。
|
8天前
|
Shell Linux API
C语言在linux环境下执行终端命令
本文介绍了在Linux环境下使用C语言执行终端命令的方法。首先,文章描述了`system()`函数,其可以直接执行shell命令并返回结果。接着介绍了更强大的`popen()`函数,它允许程序与命令行命令交互,并详细说明了如何使用此函数及其配套的`pclose()`函数。此外,还讲解了`fork()`和`exec`系列函数,前者创建新进程,后者替换当前进程执行文件。最后,对比了`system()`与`exec`系列函数的区别,并针对不同场景推荐了合适的函数选择。
|
6天前
|
域名解析 负载均衡 网络协议
Linux网络接口配置不当所带来的影响
总而言之,Linux网络接口的恰当配置是保证网络稳定性、性能和安全性的基础。通过遵循最佳实践和定期维护,可以最大程度地减少配置错误带来的负面影响。
24 0