文章目录
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)- 包含三个链
PREOUTING
、POSTROUTING
和OUTPUT
- 主要用于改变包的源地址或目标地址
- 包含三个链
mangle
表- 对于特殊的包修改,例如修改TOS(服务类型)字段或标记包
- 包含五个链:
PREROUTING
、POSTROUTING
、INPUT
、OUTPUT
和FORWARD
。 - 用于修改包的特定字段
raw
表- 用于配置不进行连接追踪的规则
- 包含两个链:
PREROUTING
和OUTPUT
。
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 <接口>
:指定要监听的网络接口。例如,eth0
或wlan0
。-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 命令详解-权限和用户管理命令