文章目录

5.1 网络连通性

5.1.1 ping

5.1.1.1 基本功能:
5.1.1.2 基本语法:
ping [选项] 域名
5.1.1.3 常用选项:
  • -a: 平缓的ping
  • -A:自适应ping,根据ping包往返时间确定ping的速度
  • -c count: ping指定次数后停止ping
  • -i interval: 设定间隔几秒发送一个ping包,默认一秒一次
  • -I interface: 指定网卡接口、或指定的本地地址送出数据包
  • -l preload: 设置在送出要求信息之前,先行发出的数据包
  • -p pattern: 指定填充ping数据包的十六进制的内容,在诊断与数据有关的网络错误时这个选项就非常有用。
  • -q: 不显示任何传送封包的信息,只显示最后的结果 。
  • -R: 记录ping的路由过程,由于IP头的限制,最多只能记录9个路由
  • -t ttl: 设置TTL为指定的值
  • -W timeout: 以毫秒为单位,指定超时时间
  • -s packetsize: 指定发送ICMP请求的数据包大小
  • -f: 极限检测
5.1.1.4 使用示例:
[root@VM-16-3-opencloudos ~]# ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=249 time=27.4 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=249 time=27.6 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=249 time=27.5 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 27.366/27.503/27.595/0.167 ms
5.1.1.5 字段解析:
  • icmp_seq: ICMP数据包序号,从1开始递增,如果中间不连续代表丢包。
  • ttl: 生存时间,具体指允许数据包之间通过多个路由数或跳数,数据包每经过一个路由器,ttl会减1,当ttl归零时,这个数据包的生成周期结束,处理它的路由器会丢弃这个数据包。Linux系统TTL值为64或255.
  • time: 这个数据报的响应时间,时间越短,代表响应速度越快。

5.1.2 traceroute

5.1.2.1 基本功能:
5.1.2.2 基本语法
traceroute [选项] 域名
5.1.2.3 常用选项:
  • -d: 使用Socket层级的排错功能
  • -f: 设置第一个检测数据包的存活数值TTL的大小
  • -F: 不要分割数据包
  • -g: 设置来源路由网关,最多可设置8个
  • -i: 使用指定的网络界面送出数据包
  • -m: 设置检测数据包的最大存活数值TTL的大小
  • -N: 同时发送探测报文的个数
  • -n: 直接使用IP地址而不是主机名称
  • -p: 设置UDP传输协议的通信端口
  • -s: 设置本地主机送出数据包的IP地址
  • -v:详细显示指定的执行过程
  • -w: 设置等待远端主机回报时间
  • -r: 忽略普通的Routing Table,直接将数据包送到远端主机上。
  • -q: 指定向每个网关发送的数据包个数
5.1.2.4 使用示例:

1.显示IP地址,不查主机名

traceroute -n www.baidu.com

2.绕过正常路由表,直接发送到网络相连的主机

traceroute -r www.baidu.com

3.探测包使用的UDP端口设置为6888

traceroute -p 6888 www.baidu.com

5.1.3 mtr

5.1.3.1 基本功能:
5.1.3.2 基本语法:
mtr [选项] 目标主机
5.1.3.3 常用选项:
  • -c, --report-cycles <次数>: 指定发送报告的次数,默认为10次。
  • -i,--interval <秒>: 指定发送报告的间隔时间,默认为1秒
  • -r, --report: 以报告模式运行,显示结果汇总。
  • -w,--report-wide: 以宽格式显示报告结果
  • -n,--no-dns: 禁止进行DNS反向解析,直接显示IP
  • -4,--ipv4: 仅使用IPV4地址
  • -6,--ipv6: 仅使用IPv6地址

5.1.4 telnet

5.1.4.1 基本功能:
5.1.4.2 基本语法:
telnet [选项] [主机名/IP地址] [端口号]
5.1.4.3 常用选项:
  • -l <用户名>: 指定登录远程主机时使用的用户名
  • -b <本地主机>: 指定本地主机的IP地址
  • -t <终端类型> : 指定终端类型
  • -a: 尝试自动登录,无需手动输入用户名和密码
5.1.4.4 使用示例

1.连接到远程主机的默认端口 23

telnet 主机名或IP地址

2.连接到指定端口

telnet 主机名或IP地址 端口号

3.指定用户名和密码

telnet -l 用户名 主机名或IP地址

4.自动登录, 使用当前用户的用户名和密码自动登录

telnet -a 主机名或IP地址

5.指定本地主机的IP地址

telnet -b 本地IP地址 主机名或IP地址
5.1.4.5 注意事项:
  • Telnet发送的所有的数据都是明文传输的,包含用户名和密码等敏感信息、
  • 在一些系统中,默认情况下可能禁用了Telnet服务,防火墙也可能阻止。

5.1.5 nc

5.1.5.1 基本功能:
5.1.5.2 基本语法
nc [选项] 主机名/IP地址 端口号
5.1.5.3 常用选项:
  • -l: 监听模式,用于监听指定端口上的连接请求。
  • -p <本地端口号>: 指定本地端口号
  • -u: 使用UDP协议
  • -v: 显示详细的调试信息
  • -n: 不执行DNS解析,直接使用IP地址进行连接
5.1.5.4 使用示例

1.连接到远程主机的指定端口

nc 主机名或IP地址 端口号

2.监听指定端口,有连接请求时进行响应

nc -l -p 端口号

3.使用UDP协议

nc -u 主机名/IP 端口号

4.使用指定的本地端口

nc -p 本地端口号 主机名或IP地址 端口号
5.1.5.5 注意事项

5.1.6 nmap

5.1.6.1 基本功能:
5.1.6.2 基本语法
namp [选项] 目标主机或网络
5.1.6.3 常用选项:
  • -sS: TCP SYN扫描
  • -sU: UDP扫描
  • -sT: TCP扫描连接
  • -O: 操作系统检测
  • -A: 综合扫描,包括操作系统检测、版本检测.
  • -p <端口范围>: 指定扫描端口范围.
  • -F: 快速扫描,只扫描常见端口.
  • -v: 显示详细的输出信息
  • -T<扫描速度>: 指定扫描的速度,包括 paranoid、sneaky、polite、normal、aggressive 和 insane 六个级别
  • -oN <文件名>: 将扫描结果保存为普通文本文件
  • -oX <文件名>: 将扫描结果保存为XML格式文件
  • -iL <文件名>: 从文件中读取目标列表进行扫描。
5.1.6.4 使用示例:

1.扫描单个主机

nmap 目标主机或IP地址

2.扫描指定端口范围

nmap -p 端口范围 目标主机或IP地址

3.扫描整个子网

nmap 目标子网

4.综合扫描

nmap -A 目标主机或IP地址

5.扫描指定端口指定类型

nmap -sU 目标主机或IP地址

5.2 查看电脑网络信息

5.2.1 ifconfig

5.2.1.1 基本功能:
5.2.1.2 基本语法
ifconfig [接口] [选项]
5.2.1.3 常用选项:
  • ifconfig: 查看网络接口信息。
  • ifconfig eth0: 查看特定接口信息
  • ifconfig eth0 up: 启动网络接口
  • ifconfig eth0 down: 禁用网络接口
  • ifconfig eth0 192.168.1.100: 设置IP地址
  • ifconfig eth0 netmask 255.255.255.0: 设置子网掩码
  • ifconfig eth0 broadcast 192.168.1.255: 设置广播地址
  • ifconfig eth0:1 192.168.1.101: 添加别名接口

5.2.2 ip

5.2.2.1 基本功能:
5.2.2.2 基本语法
ip [选项] 对象 命令
5.2.2.3 常用选项:
  • -4: 只显示IPv4相关信息。
  • -6: 只显示IPv6相关信息
  • -o: 输出结果以单行格式显示。
  • -s: 显示详细统计信息。
5.2.2.4 常用对象
  • link: 管理网络接口
  • addr: 管理IP地址
  • route: 管理路由表
  • neigh: 管理邻居条目。
5.2.2.5 使用示例

1.显示所有网络接口信息

ip link show 

2.启用网络接口

ip link set dev eth0 up

3.禁用网络接口

ip link set dev eth0 down

4.显示所有网络接口的IP地址信息

ip addr show

5.为接口添加IP地址

ip addr add 192.168.2.100/24 dev eth0

6.删除接口上的IP地址

ip addr del 192.168.1.100/24 dev eth0

7.显示路由表

ip route show

8.添加静态路由

ip route add 192.168.2.0/24 via 192.168.1.1

9.删除静态路由

ip route del 192.168.2.0/24

10.设置默认网关

ip route add default via 192.168.1.1

11.管理邻居表

ip neigh show

12.添加邻居条目

ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev eth0

13.删除邻居条目

ip neigh del 192.168.1.10 dev eth0

5.3 查看网络连接信息

5.3.1 netstat

5.3.1.1 基本功能:
5.3.1.2 基本语法
netstat [选项]
5.3.1.3 常用选项:
  • -a: 显示所有连接中的套接字。
  • -t: 显示TCP协议的连接
  • -u: 显示UDP协议的连接
  • -l: 显示监听中的套接字
  • -n: 以数字格式显示地址和端口
  • -p: 显示使用套接字的进程标识符(PID)和程序名称
  • -r: 显示路由表
  • -s: 显示网络统计信息
5.3.1.4 使用示例

1.以数据格式(IP地址形式)

netstat -n

2.显示网络统计信息

netstat -s

5.3.2 ss

5.3.2.1 基本功能:
5.3.2.2 基本语法
ss [选项]
5.3.2.3 常用选项:
  • -a: 显示所有套接字。
  • -t: 显示TCP协议的连接。
  • -u: 显示UDP协议的连接
  • -l: 显示套接字的套接字
  • -n: 以数字格式显示地址和端口号。
  • -p: 显示使用套接字的进程标识符(PID)和程序名称。
  • -r: 解析主机名
  • -i: 显示网络接口信息
  • -s: 显示套接字统计信息
  • -4: 显示IPv4套接字
  • -6: 显示IPv6套接字

5.4 dns解析

5.4.1 nslookup

5.4.1.1 基本功能:
5.4.1.2 基本语法:
nslookup [选项] [主机名]
5.4.1.3 常用选项:
  • [主机名]: 要查询的域名或IP地址。
  • -type=<类型>: 指定要查询的DNS记录类型,如A、MX、NS、CNAME、PTR等。
  • -query=<类型>:与-type相同,用于指定要查询的记录类型。
  • -timeout=<秒>: 等待DNS服务器响应时间
  • -retries=<秒>: 设置查询DNS服务器的重试次数。
  • -debug: 启用调试模式,显示详细的查询过程和响应。
  • -port=<端口号>: 指定DNS服务器的端口号(默认为53)。
5.4.14 使用示例:

1.基本查询

nslookup example.com

2.指定DNS服务器

nslookup example.com 8.8.8.8

3.查询特定类型的DNS记录

nslookup -type=MX example.com

4.查询NS记录

nslookup -type=NS example.com

5.反向DNS查询

nslookup 192.0.2.1

6.进入交互模式

nslookup

7.调试模式

nslookup -debug example.com
5.4.1.5 注意事项:
  • 权限问题: 在一些系统中,使用nslookup可能需要管理员权限。
  • DNS缓存: 查询结果可能受DNS缓存影响,实际IP地址可能与查询结果不同。

5.4.2 dig

5.4.2.1 基本功能:
5.4.2.2 基本功能:
dig [选项] [域名] [查询类型]
5.4.2.3 常用选项:
  • [域名]: 要查询的域名
  • [查询类型]:要查询的DNS记录类型,如A、MX、NS、CNAME、TXT、PTR等。默认是A记录。
  • @DNS服务器: 指定要使用的DNS服务器进行查询。
  • +short :简洁输出,只输出查询结果。
  • +trace: 跟踪整个查询过程,显示从跟服务开始的逐级查询信息。
  • +noall: 禁用所有默认输出。
  • +answer: 仅显示答案部分。
  • +stats: 显示统计信息。
  • +additional: 显示附加信息部分。
  • +authority: 显示权威应答部分。
  • -x: 反向DNS查询
5.4.2.4 使用示例:

1.基本查询

dig example.com

2.指定DNS服务器

dig @8.8.8.8 example.com

3.查询MX记录

dig example.com MX

4.查询NS记录

dig example.com NS

5.跟踪查询过程

dig example.com +trace

6.反向DNS查询

dig -x 99.184.216.216 

7.显示统计信息

dig example.com +stats

5.5 防火墙

5.5.1 iptables

5.5.1.1 基本功能:
5.5.1.2 基本语法
iptables [选项] [] [规则]
5.5.1.3 常用选项:
  • -A: 追加规则到指定链
  • -D: 删除指定链中的规则
  • -I :插入指定规则到指定链
  • -R: 替换指定链中的规则
  • -L: 列出指定链中的规则
  • -F: 清空指定链中的所有规则
  • -N: 创建新的用户自定义链
  • -X: 删除用户自定义链
  • -P: 设置默认策略
  • -t: 指定要操作的表,默认为filter
5.5.1.4 常用链
  • IINPUT:处理进入本地的所有数据包
  • OUTPUT:处理本机发送的所有数据包
  • FORWARD:处理经过本机转发的数据包
  • PREROUTING:在数据包到达路由决策之前处理(用于NAT)
  • POSTROUTING:在数据包离开路由之后处理(用于NAT)
5.5.1.5 匹配条件和目标
  • -s,--source: 指定源IP
  • -d,--destination: 指定目标IP地址
  • -p,--protocol: 指定协议
  • --deport: 指定目标端口
  • --sport:指定源端口
  • -j,--jump:指定目标动作(ACCEPT,DROP REJECT LOG)
5.5.1.6 iptables表类型:
  • filter表: 默认表,用于管理网络包的过滤规则。
    • 包含三个链; INPUT,OUTPUT,FORWARD
    • 常用于允许或拒绝网络包
  • nat表: 用于网络地址转换、包含源地址转化(SNAT)和目标地址转换(DNAT)
    • 包含三个链PREOUTINGPOSTROUTINGOUTPUT
    • 主要用于改变包的源地址或目标地址
  • mangle
    • 对于特殊的包修改,例如修改TOS(服务类型)字段或标记包
    • 包含五个链:PREROUTINGPOSTROUTINGINPUTOUTPUTFORWARD
    • 用于修改包的特定字段
  • raw
    • 用于配置不进行连接追踪的规则
    • 包含两个链:PREROUTINGOUTPUT
5.5.1.7 使用示例

1.查看所有规则

iptables -L

2.查看某个特定链的规则

iptables -L INPUT

3.允许来自特定IP地址的所有流量

iptables -A INPUT -s 192.168.1.100 -j ACCEPT

4.拒绝来自特定IP的所有流量

iptables -A INPUT -s 192.168.1.100 -j DROP

5.允许特定端口的TCP流量

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

6.删除链中的第一条规则

iptables -D INPUT 1

7.删除指定规则

iptables -D INPUT -s  192.168.1.100 -j ACCEPT

8.设置默认策略, 默认拒绝所有输入流量

iptables -P  INPUT DROP

9.将所有流向端口80的流量重定向到端口8080

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

10.将所有流向特定IP和端口的流量重定向到另一台及其

iptables -t nat -A PREROUTING -d 192.168.1.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.101:80

5.6 下载文件命令

5.6.1 wget

5.6.1.1 基本功能:
5.6.1.2 基本语法:
wget [选项] [URL]
5.6.1.3 常用选项:
  • -o,--output-document=文件名: 将下载的内容保存到指定文件中。
  • -P, --directory-prefix=目录: 将文件下载到指定目录中
  • -c, --continue: 断点续传,继续下载未完成的文件
  • -b,--background: 在后台运行wget
  • -q, --quiet:安静模式,不输出信息
  • -r,--recursive:递归下载网页
  • -l,--level=递归深度: 指定递归下载的深度
  • -k,--convert-links: 下载后转换链接
  • -m,--mirror: 镜像网站
  • -N,--timestamping:仅下载比本地文件更新的文件
  • --limit-rate=速度: 限制下载速度
  • --no-check-certificate:不检查服务器SSL证书
  • -U,--user-agent=代理字符串: 设置用户代理字符串
  • --http-user=用户和--http-password=密码:用于http认证
  • --ftp-user=用户和--ftp-password=密码:用于FTP认证
5.6.1.4 使用示例:

1.使用自定义用户代理

wget -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" https://example.com

2.指定递归下载深度

wget -r -l 2 https://example.com

3.使用http认证下载文件

wget --http-user=username --http-password=password https://example.com/protectedfile.zip

5.7 网络抓包工具

5.7.1 tcpdump

5.7.1.1 基本功能:

tcpdump 是一个强大的命令行工具,用于捕获和分析网络流量。它通常用于网络故障排除、安全监控以及性能分析。tcpdump 可以捕获网络接口上的数据包,并显示其内容或将其保存到文件中以供后续分析。

5.7.1.2 基本语法:
tcpdump [选项] [表达式]
5.7.1.3 常用选项:
  • -i <接口>:指定要监听的网络接口。例如,eth0wlan0
  • -n:不要解析地址(主机名、端口号等),加快处理速度。
  • -v:详细模式,提供更多信息。
  • -nn:不要将地址和端口解析为与名称关联的数字。
  • -c <数量>:捕获指定数量的数据包后停止。例如,-c 100
  • -w <文件>:将捕获的数据包写入文件,而不是标准输出。
  • -r <文件>:从指定的文件读取数据包,而不是从网络接口捕获。
  • -s <大小>:设置每个捕获数据包的大小,默认是65536字节。
5.7.1.4 使用示例:

1.捕获所有数据包

这将在 eth0 接口上捕获所有经过的数据包。

sudo tcpdump -i eth0

2.捕获特定数量的数据包

这将在 eth0 接口上捕获100个数据包后停止。

sudo tcpdump -i eth0 -c 100

3.捕获并将数据包保存到文件

这将在 eth0 接口上捕获所有数据包,并将其保存到 capture.pcap 文件中。

sudo tcpdump -i eth0 -w capture.pcap

4.从文件读取数据包

这将从 capture.pcap 文件中读取数据包并显示它们。

sudo tcpdump -r capture.pcap

5.捕获HTTP流量

这将在 eth0 接口上捕获所有目标端口为80的TCP流量(通常是HTTP流量)。

sudo tcpdump -i eth0 tcp port 80

6.捕获特定IP地址的流量

这将在 eth0 接口上捕获所有源或目标地址为 192.168.1.1 的数据包。

sudo tcpdump -i eth0 host 192.168.1.1

7.捕获并显示更多详细信息

这将在 eth0 接口上捕获所有数据包,并显示非常详细的信息。

sudo tcpdump -i eth0 -vvv
5.7.1.5 组合使用:

表达式语法:

tcpdump 支持一种类似于BPF(Berkeley Packet Filter)的语法来过滤数据包。例如:

  • tcp:仅捕获TCP协议的数据包。
  • udp:仅捕获UDP协议的数据包。
  • port <端口>:捕获源端口或目标端口为指定端口的数据包。
  • host <IP地址>:捕获源地址或目标地址为指定IP地址的数据包。
  • net <网络/子网>:捕获源地址或目标地址属于指定网络的数据包。

示例:

可以组合多个条件来创建更复杂的过滤规则。例如:在 eth0 接口上捕获所有目标端口为80且源或目标地址为 192.168.1.1 的TCP流量。

sudo tcpdump -i eth0 tcp and port 80 and host 192.168.1.1

相关资源

shell脚本 从入门到精通
[ DOS 命令基础 1 ] DOS 命令命令详解-系统查询相关命令
[ DOS 命令基础 2 ] DOS 命令命令详解-网络相关命令
[ DOS 命令基础 3 ] DOS 命令命令详解-文件操作相关命令
[ DOS 命令基础 4 ] DOS 命令命令详解-端口进程相关命令
[ Linux 命令基础 7 ] Linux 命令详解-磁盘管理相关命令
[ Linux 命令基础 6 ] Linux 命令详解-权限和用户管理命令

11-11 15:33