网络故障排除
一般网络配置和故障排除是 DevOps 日常工作的重要组成部分。即使对于使用 Linux 系统的开发人员来说,了解Linux 网络命令也是一个额外的优势。
在本文中,我将向您展示一些用于解决网络问题的常用 Linux 命令。
hostname
hostname
:获取DNS(域名系统)名称并设置系统的主机名或NIS(网络信息系统)域名。主机名是赋予计算机并连接到网络的名称。其主要目的是通过网络进行唯一标识。
常见用法:
$ hostname -a ==> 获取主机系统的别名
$ hostname -A ==> 获取所有 FQDN
$ hostname -f ==> 获取 FQDN。包含短主机名和 DNS 域名
$ hostname -d ==> 如果设置了本地域,则获取域
$ hostname -F file_name ==> 从文件中设置主机名
$ hostname -i ==> 获取 IP
$ hostname -I ==>获取所有 IP
ping
ping
:用于检查主机之间的网络连接。
常见用法:
$ ping baidu.com ==> 检查与 baidu.com 的连接
$ ping -c 5 baidu.com ==> 只发送 5 个数据包
$ ping -s 40 baidu.com ==> 设置数据包大小
$ ping -i 2 baidu。com ==> 将时间间隔更改为 2 秒
$ ping -c 2 -q baidu.com ==> 只获取摘要
$ ping -f baidu.com ==> 尽快发送数据包
host
host
:获取主机 DNS 详细信息。查找特定域名的 IP 地址。
常见用法:
$ host baidu.com ==> 获取 baidu.com 的 IP
$ host ip_address ==> 获取 ip_address 的域详细信息
$ host -v baidu.com ==> 启用详细输出
$ host -t ns baidu.com = => 获取名称服务器
$ host -t mx baidu.com ==> 获取邮件服务器
$ host -R 3 baidu.com ==> 指定重试次数
curl
curl
:用于传输数据的跨平台实用程序。它可用于解决多个网络问题。
常见用法:
$ curl https://url ==> 显示 url 的内容
$ curl -
$ curl -o file https://url ==> 保存到本地文件
$ curl -O https://url ==> 保存与 url 同名的文件
$ curl -C - -P https://url ==> 恢复被中断的下载
$ curl --limit-rate 1000K -O ==> 将下载限制为 1000KB
$ curl -u demo:password ==> 使用身份验证下载
$ curl -x [proxy_name]:[port] ==> 设置代理
$ curl --noproxy "baidu.com" url ==>不要为 baidu.com 使用代理
ip
ip
: ifconfig 的替代品。可用于配置和检索有关系统网络接口的信息。
常见用法:
$ ip addr ==> 显示所有接口信息
$ ip addr show eth1 ==> 显示 eht1 接口信息
$ ip link ==> 显示链路层信息
$ ip -s link ==> 也显示链路统计信息
$ ip route == > 显示路由信息
$ ip a add/del 192.168.1.50/24 dev enp3s0 ==> 向接口添加/删除 IP
$ ip link set eth1 up/down ==> 启用/禁用 eth1
$ ip neighbor ==> 查看 MAC设备地址
$ ip neighbor add/del (ip_address) dev eth1 ==> 修改 ARP 条目
traceroute
traceroute
:它使用 ICMP 协议并查找读取目标服务器所涉及的跃点。它还显示了跳跃之间的时间。
常见用法:
$ traceroute baidu.com ==> 打印跃点信息
$ traceroute -4 baidu.com ==> IPv4 跃点信息
$ traceroute -6 baidu.com ==> TPv6 跃点信息
$ traceroute -f 5 baidu.com ==> 从第 5 跳
$ traceroute -g 192.168.33.24 baidu.com ==> 路由数据包通过门
$ traceroute -m 5 baidu.com ==> 将最大跳数设置为 5
$ traceroute -n baidu.com ==> 不解析 IP域
$ traceroute -p 20211 baidu.com ==> 设置要使用的目标端口,默认为 33434
dig
dig
:帮助您获取与域名关联的 DNS 记录。
常见用法:
$ dig baidu.com ==> 查询域 A 记录
$ dig baidu.com +short ==> 压缩信息
$ dig baidu.com +nocomments ==> 删除评论
$ dig baidu.com ANY ==> 查询所有 DNS 记录
$ dig baidu.com MX ==> 查询 MX 记录
$ dig baidu.com +trace ==> 启用跟踪信息
$ dig baidu.com @8.8.8.8 ==> 指定名称服务器
$ dig baidu.com +noall +answer +stats ==> 查询统计部分
nslookup
nslookup
: 检查 DNS 条目。它类似于 dig 命令。
常见用法:
$ nslookup baidu.com ==> 查询域并获取详细信息
$ nslookup 172.217.167.174 ==> 反向 DNS 查找
$ nslookup -type=any baidu.com ==> 查找任何记录
$ nslookup -type=MX baidu.com = => 查找 MX 记录
网猫 (NC)
nc
:强大的网络工具、安全工具和网络监控工具。
常见用法:
$ nc -l -p 1234 ==> 列出端口 1234
$ nc 168.134.12.34 1234 ==> 连接到 IP:端口
$ nc -z -v 127.0.0.1 22 ==> 扫描单个端口
$ nc -z -v 127.0.0.1 22 23 ==> 扫描多端口
$ nc -z -v 127.0.0.1 22-244 ==> 按范围扫描多端口
tcpdump
tcpdump
:用于捕获、过滤和分析网络流量。
常见用法:
$ tcpdump -i eth1 ==> 从接口 eth1 捕获数据包
$ tcpdump -n -i eth1 ==> 从带有 IP 的 eth1 捕获
$ tcpdump -i eth1 tcp ==> 仅捕获 tcp 数据包
$ tcpdump -c 5 -i eth1 = => 只捕获 5 个数据包
$ tcpdump -A -i eth1 ==> 捕获 ASCII 格式的数据包
$ tcpdump -D ==> 显示所有可用的接口
$ tcpdump -XX -i eht1 ==> 显示 HEX 和 ASCII 格式的数据包
$ tcpdump -w capture.pcap -i eth1 ==> 将捕获的数据包保存到文件
$ tcpdump -r capture.pcap ==> 读取捕获的文件
nmap
nmap
: 用来做网络探索和安全审计。
常见用法:
$ nmap baidu.com ==> 使用主机名扫描
$ namp 142.250.31.138 ==> 使用 IP 扫描
$ nmap -v baidu.com ==> 显示详细输出
$ nmap ip1 ip2 ip3 ==> 扫描多个主机
$ nmap 103.76。 228.* ==> 扫描整个子网
$ nmap -sA ip ==> 扫描以检测防火墙设置
$ nmap -iL input.txt ==> 从文件扫描
$ namp -A ip ==> 积极扫描提供更多有价值的信息