Skip to content
← 返回文件与文本处理列表
文件与文本处理任务与配置

命令与脚本:网络连接与传输 · 从接口、邻居与连通性定位故障 ​

返回分篇目录

命令与脚本:网络连接与传输 ​

从接口、邻居与连通性定位故障 ​

先查看接口与 ARP 邻居,再检查主机或端口可达性。ICMP ping 与 TCP 检测各自保留,便于区分失败发生在哪一层。

ifconfig · 网络接口配置工具 ​

更多信息:https://net-tools.sourceforge.io/man/ifconfig.8.html。

  • 查看某个网络接口的网络设置:
bash
ifconfig {{接口名称}}
  • 显示所有接口的详细信息,包括已禁用的接口:
bash
ifconfig -a
  • 禁用一个接口:
bash
ifconfig {{接口名称}} down
  • 启用一个接口:
bash
ifconfig {{接口名称}} up
  • 为一个接口分配 IP 地址:
bash
ifconfig {{接口名称}} {{ip地址}}

arp · 显示和操作系统的 ARP 缓存 ​

更多信息:https://manned.org/arp.8。

  • 显示当前的 ARP 表:
bash
arp -a
  • 删除特定条目:
bash
arp -d {{地址}}
  • 创建指定条目:
bash
arp -s {{地址}} {{MAC 地址}}

arp-scan · 发送 ARP 数据包到特定主机(指定 IP 地址或主机名),来扫描本地网络 ​

更多信息:https://github.com/royhills/arp-scan。

  • 扫描当前本地网络:
bash
arp-scan {{[-l|--localnet]}}
  • 扫描带有自定义位掩码的 IP 网络:
bash
arp-scan {{192.168.1.1}}/{{24}}
  • 扫描自定义范围内的 IP 网络:
bash
arp-scan {{127.0.0.0}}-{{127.0.0.31}}
  • 扫描带有自定义子网掩码的 IP 网络:
bash
arp-scan {{10.0.0.0}}:{{255.255.255.0}}

ping · 向网络主机发送 ICMP (ECHO_REQUEST) 数据包 ​

另请参阅:mtr。 更多信息:https://manned.org/ping。

  • Ping 主机:
bash
ping {{主机地址}}
  • 仅 Ping 主机特定次数:
bash
ping -c {{次数}} {{主机地址}}
  • Ping 主机,指定请求之间的间隔(以秒为单位)(默认为 1 秒):
bash
ping -i {{间隔秒数}} {{主机地址}}
  • Ping 主机而不尝试查找地址的符号名称:
bash
ping -n {{主机地址}}
  • Ping 主机并在收到数据包时响铃(如果您的终端支持):
bash
ping -a {{主机地址}}
  • 如果没有收到响应,也显示一条消息:
bash
ping -O {{主机地址}}
  • Ping 主机,指定 ping 次数、每个数据包的响应超时 (-W)和整个 ping 运行的总时间限制 (-w):
bash
ping -c {{次数}} -W {{响应超时秒数}} -w {{总的等待超时秒数}} {{主机地址}}

x ping · ping 命令的增强模块 ​

更多信息:https://x-cmd.com/mod/ping。

  • ping 指定的主机(省略则默认为 bing.com):
bash
x ping {{host}}
  • 以热力图形式显示 ping 结果:
bash
x ping {{[-m|--heatmap]}} {{host}}
  • 以柱状图形式显示 ping 结果:
bash
x ping {{[-b|--bar]}} {{host}}
  • 处理现有 ping 结果并以热力图显示:
bash
ping {{host}} | x ping vis {{[-m|--heatmap]}}
  • 显示帮助:
bash
x ping {{[-h|--help]}}

x tping · 通过 TCP 协议 ping 主机以检查其可达性 ​

更多信息:https://x-cmd.com/mod/tping。

  • 使用详细模式 Ping 主机的 80 端口(默认端口):
bash
x tping {{host}}
  • Ping 指定主机的特定端口:
bash
x tping {{host}}:{{port}}
  • 以热力图形式显示结果:
bash
x tping {{[-m|--heatmap]}} {{host}}
  • 以柱状图形式显示结果:
bash
x tping {{[-b|--bar]}} {{host}}:{{port}}
  • 输出原始数据:
bash
x tping {{[-r|--raw]}} {{host}}
  • 输出指定格式:
bash
x tping {{--csv|--tsv}} {{host}}

netstat · 显示与网络相关的信息,如打开的连接、打开的套接字端口等 ​

另请参阅:ss。 更多信息:https://manned.org/netstat。

  • 列出所有端口:
bash
netstat {{[-a|--all]}}
  • 列出所有被监听端口:
bash
netstat {{[-l|--listening]}}
  • 列出 TCP 连接(仅监听需再加 -l):
bash
netstat {{[-t|--tcp]}}
  • 显示 PID 和程序名:
bash
netstat {{[-p|--program]}}
  • 持续列出信息:
bash
netstat {{[-c|--continuous]}}
  • 列出路由并且不解析 IP 到主机名:
bash
netstat {{[-rn|--route --numeric]}}
  • 列出正在监听的 TCP 和 UDP 端口(如果你是 root 用户,还会显示用户和进程):
bash
netstat {{[-tulpne|--tcp --udp --listening --program --numeric --extend]}}

nmap · 网络探索工具和安全/端口扫描程序 ​

某些功能(如 SYN 扫描)仅当以 root 权限运行 nmap 时才能激活。 另请参阅:hping3, masscan, naabu, rustscan, zmap。 更多信息:https://nmap.org/book/man.html。

  • 使用不同的详细([v]erbosity)级别扫描远程主机的前 1000 个端口:
bash
nmap -v{{1|2|3}} {{ip或主机名}}
  • 对整个子网或单个主机进行非常激进的 ping 扫描:
bash
nmap -T5 -sn {{192.168.0.0/24|ip或主机名1,ip或主机名2,...}}
  • 对来自文件的主机启用操作系统检测、版本检测、脚本扫描和路由跟踪:
bash
sudo nmap -A -iL {{路径/到/文件.txt}}
  • 扫描特定的端口列表(使用 -p- 扫描从 1 到 65535 的所有端口):
bash
nmap -p {{端口1,端口2,...}} {{ip或主机名1,ip或主机名2,...}}
  • 使用默认 NSE 脚本执行前 1000 个端口的服务和版本检测,将结果(-oA)写入输出文件:
bash
nmap -sC -sV -oA {{top-1000-ports}} {{ip或主机名1,ip或主机名2,...}}
  • 使用 default and safe NSE 脚本谨慎地扫描目标:
bash
nmap --script "default and safe" {{ip或主机名1,ip或主机名2,...}}
  • 使用所有可用的 http-* NSE 脚本扫描在标准端口 80 和 443 上运行的 Web 服务器:
bash
nmap --script "http-*" {{ip或主机名1,ip或主机名2,...}} -p 80,443
  • 尝试通过使用极慢扫描(-T0)、诱饵源地址(-D)、分段([f]ragmented)数据包、随机数据和其他方法来规避 IDS/IPS 检测:
bash
sudo nmap -T0 -D {{诱饵ip1,诱饵ip2,...}} --source-port {{53}} -f --data-length {{16}} -Pn {{ip或主机名}}

zmap · 用于全网范围调查的快速、开源网络扫描器 ​

另请参阅:hping3, masscan, naabu, nmap, rustscan。 更多信息:https://manned.org/zmap。

  • 扫描一个子网或整个 IPv4 地址空间上的指定 TCP 端口(默认:80):
bash
zmap {{SUBNETS}} {{[-p|--target-ports]}} {{端口}}
  • 在一个子网中扫描指定的端口或端口范围:
bash
zmap {{[-p|--target-ports]}} {{端口1, 端口2-端口3,...}} {{SUBNETS}}
  • 将结果输出到包含自定义字段的 CSV 文件中:
bash
zmap {{[-o|--output-file]}} {{路径/到/输出文件.csv}} {{[-f|--output-fields]}} "{{saddr, daddr, sport, dport}}" {{SUBNETS}}
  • 将扫描速率限制为每秒指定数量的数据包:
bash
zmap {{[-r|--rate]}} {{每秒数据包数}} {{SUBNETS}}
  • 执行一次不发送任何数据包的空跑:
bash
zmap {{[-d|--dryrun]}} {{SUBNETS}}
  • 使用 CIDR 表示法的阻止列表文件来排除子网:
bash
zmap {{[-b|--blocklist-file]}} {{路径/到/阻止列表.txt}} {{SUBNETS}}
  • 为扫描数据包设置指定的源 IP 地址:
bash
zmap {{[-S|--source-ip]}} {{源_ip}} {{SUBNETS}}
  • 限制要探测的目标数量或百分比(例如 1000 个 IP/端口组合):
bash
zmap {{[-n|--max-targets]}} {{1000}} {{SUBNETS}} {{[-p|--target-ports]}} {{端口1, 端口2-端口3}}

nload · 在终端中可视化查看网络流量 ​

更多信息:https://manned.org/nload。

  • 查看所有网络接口的流量(使用<ArrowKeys>切换不同网口):
bash
nload
  • 查看指定网络接口的流量(使用<ArrowKeys>切换网口):
bash
nload devices {{网口1 网口2 ...}}

继续阅读