-
netstat命令
netstat命令是一个用于查看网络连接状态和统计信息的工具。通过netstat命令,您可以查看网络接口、路由表、TCP和UDP连接等相关信息。下面是一些netstat命令的常用选项和示例: -
显示所有网络接口信息:
netstat -i -
显示所有TCP连接信息:
netstat -t -
显示所有UDP连接信息:
netstat -u -
显示所有监听状态的连接:
netstat -l -
显示路由表信息:
netstat -r -
显示所有活动连接信息及进程信息:
netstat -p -
显示所有网络统计信息:
netstat -s -
显示指定localhost的TCP连接信息:
netstat -t -n -s 127.0.0.1 -
显示已经结束的连接信息:
netstat -an | grep CLOSE_WAIT | awk ‘{print $1}’
通过netstat命令,您可以获得有关网络连接状态、路由表信息、网络统计数据等方面的有用信息,帮助您进行故障排除、网络监视和性能分析。
- ss命令
ss命令是一个用于查看套接字(socket)统计信息的工具,通常用于显示各种网络连接状态、路由表信息和接口统计数据。下面是一些ss命令的常用选项和示例:
-
显示所有活动连接信息:
ss -
显示TCP连接:
ss -t -
显示UDP连接:
ss -u -
显示监听状态的连接:
ss -l -
显示UNIX域连接:
ss -x -
显示具体端口的连接信息(例如端口80):
ss dst :80 -
显示与某个IP地址相关的连接信息:
ss dst <IP_Address> -
显示活跃连接的统计信息:
ss -s -
显示进程信息:
ss -p -
显示详细信息:
ss -e -
显示内核指定状态的连接信息:
ss state TIME-WAIT -
显示连接状态为ESTABLISHED的信息:
ss state established -
显示超时连接信息:
ss -o state FIN-WAIT-1
通过ss命令,查看更加详细和实时的网络连接信息,分析网络流量、排查故障和监控网络连接状态。ss命令相对于netstat来说功能更为强大和灵活,能够提供更多细化的连接信息和过滤选项。
- lsof -i命令
lsof命令用于显示系统中已打开的文件,包括网络连接、设备文件等。当使用lsof -i
时,它将显示当前系统中所有网络连接相关的信息。
以下是一些lsof -i
命令的常见选项和示例:
-
显示所有打开的网络连接:
lsof -i -
显示TCP连接:
lsof -i tcp -
显示UDP连接:
lsof -i udp -
显示指定端口的连接信息(例如端口80):
lsof -i :80 -
显示指定IP地址的连接信息:
lsof -i :<IP_Address> -
显示监听状态的连接:
lsof -i -sTCP:LISTEN -
显示特定用户创建的连接:
lsof -i -u -
显示特定进程ID创建的连接:
lsof -i -p
通过lsof -i
命令,查看系统中当前打开的网络连接信息,包括TCP连接、UDP连接以及监听状态。这对于分析系统中的网络活动、查找网络连接问题以及监控网络流量非常有用。
-
nc命令
nc命令是一个简单而强大的网络工具,常用于处理 TCP 或 UDP 连接。它可以作为一个简单的网络调试工具,也可以作为一个端口监听或者是批处理脚本的一部分。以下是一些nc
命令的常见选项和示例: -
在指定的端口上监听TCP连接:
nc -l -p -
在指定的端口上监听UDP连接:
nc -u -l -p -
发起TCP连接:
nc -
发起UDP连接:
nc -u -
在TCP模式下进行端口扫描:
nc -z -
使用nc进行文件传输:
接收端
nc -l > received_file
发送端
nc < file_to_send
-
通过nc进行端口转发:
本地端口转发
nc -l <local_port> | nc <target_host> <target_port>
远程端口转发
nc -l <local_port> | nc -u <target_host> <target_port>
-
指定超时时间:
nc -w <timeout_seconds>
通过nc
命令,非常灵活地进行网络连接的建立、端口监听、数据传输等操作。它的功能丰富,可以用于调试、测试和诊断网络连接,是网络管理员和开发人员常用的工具之一。
-
curl命令
curl命令是一个使用非常广泛的命令行工具,用于向服务器发送请求并显示响应结果。它支持多种协议,如HTTP、FTP、SMTP等,并且支持对请求和响应进行各种定制。以下是一些curl命令的常见选项和示例: -
发送一个 GET 请求:
curl -
带自定义请求头发送一个 GET 请求:
curl -H “Content-Type: application/json” -
带请求体发送 POST 请求:
curl -X POST -d ‘{“key”: “value”}’ -
上传文件:
curl -F “file=@<file_path>” -
下载文件:
curl -O -
设置超时时间:
curl --connect-timeout <timeout_seconds> -
跟踪网络请求过程:
curl -v -
发送 HTTPS 请求时,不进行SSL验证:
curl -k
通过curl命令,通过多种协议向服务器发送请求,支持各种请求和响应定制,且可跟踪网络请求过程。curl也广泛应用于自动化测试、接口调试和HTTP/HTTPS相关开发。
- tcpdump命令
tcpdump是一个流行的网络抓包工具,可以用来捕获网络数据包,并且能够对捕获的数据包进行实时分析和展示。它支持对网络流量进行详细的监控和分析,是网络管理员和安全专家常用的工具之一。以下是一些tcpdump命令的常见选项和示例:
-
抓取指定网络接口的数据包:
sudo tcpdump -i -
指定抓包数量:
sudo tcpdump -c -i -
保存数据包到文件:
sudo tcpdump -i -w <output_file> -
显示数据包的ASCII和HEX格式:
sudo tcpdump -XX -i -
过滤指定源或目的IP地址的数据包:
sudo tcpdump -i src <source_IP>
sudo tcpdump -i dst <destination_IP> -
显示数据包的详细信息:
sudo tcpdump -v -i -
显示数据包的时间戳:
sudo tcpdump -tttt -i -
使用过滤器过滤特定协议或端口:
sudo tcpdump -i tcp port <port_number>
sudo tcpdump -i icmp
通过tcpdump命令,可以实时监测网络流量,分析网络数据包的内容和传输情况,帮助诊断网络问题、进行安全监控以及进行网络分析。
- traceroute命令
traceroute
是一个用于跟踪数据包从源主机到目标主机经过的路径的命令,它显示数据包在网络中的传输情况,包括经过的路由器和所花费的时间。以下是一些关于traceroute
命令的详细解释和常用选项:
基本语法:
traceroute <目标主机>
常用选项:
- -I:使用 ICMP Echo 请求代替 UDP 数据包。
- -T:使用 TCP SYN 请求代替 UDP 数据包。
- -n:不进行域名解析,直接显示 IP 地址。
- -q <查询次数>:设置每个 TTL 值发送的查询次数。
- -m <最大 TTL 值>:设置最大 TTL 值(跳数)。
示例:
-
基本使用:
traceroute www.example.com -
使用 ICMP Echo 请求:
traceroute -I www.example.com -
显示 IP 地址而非主机名:
traceroute -n www.example.com -
指定查询次数和最大 TTL 值:
traceroute -q 3 -m 30 www.example.com
工作原理:
- 发送 UDP 数据包到目标主机,初始 TTL 为 1。
- 第一个路由器将 TTL 减少为 0,返回一个 ICMP Time Exceeded 消息。
- 源主机收到 Time Exceeded 消息,增加 TTL,再次发送 UDP 数据包。
- 重复以上步骤,每次 TTL 递增直到到达目标主机。
通过 traceroute
命令,可以更好地了解数据包在网络中的传输路径,帮助诊断网络故障、分析网络延迟以及优化网络连接。
- wget命令
wget
是一个在命令行下下载文件的工具,可通过指定文件的 URL 来下载文件。它支持各种协议,如 HTTP、HTTPS 和 FTP,并提供了一些有用的选项来管理下载过程。以下是关于wget
命令的详细解释和一些常用选项:
基本语法:
wget [选项]
常用选项:
- -O <文件名>:将下载文件保存为指定的文件名。
- -P <目录>:将下载文件保存到指定目录。
- -c:断点续传,如果下载中断,可以从上次中断的位置继续下载。
- -N:只下载比本地文件新的文件。
- -r:递归下载,可以下载指定 URL 下的所有链接。
- -q:静默模式,只显示错误和警告信息。
示例:
-
基本使用:
wget -
保存下载文件为指定文件名:
wget -O <文件名> -
保存下载文件到指定目录:
wget -P <目录> -
断点续传下载文件:
wget -c -
只下载比本地文件新的文件:
wget -N -
递归下载指定 URL 下的所有链接:
wget -r
更多功能:
除了以上常用选项,wget
还提供了更多功能,例如下载限速、设置 User-Agent、选择代理服务器等。可以通过 man wget
命令查看完整的选项列表和详细用法。
wget
是一个灵活且强大的命令行下载工具,适用于从 Web 获取文件或进行批量下载。它在管理下载任务和网络下载不稳定的情况下非常有用。