Linux常用网络命令

本文介绍了网络工具netstat、ss、lsof-i、nc、curl、tcpdump、traceroute和wget的基本用法、常见选项,以及它们在查看网络连接状态、监控流量、抓包分析和文件下载等方面的应用。
摘要由CSDN通过智能技术生成
  1. netstat命令
    netstat命令是一个用于查看网络连接状态和统计信息的工具。通过netstat命令,您可以查看网络接口、路由表、TCP和UDP连接等相关信息。下面是一些netstat命令的常用选项和示例:

  2. 显示所有网络接口信息:
    netstat -i

  3. 显示所有TCP连接信息:
    netstat -t

  4. 显示所有UDP连接信息:
    netstat -u

  5. 显示所有监听状态的连接:
    netstat -l

  6. 显示路由表信息:
    netstat -r

  7. 显示所有活动连接信息及进程信息:
    netstat -p

  8. 显示所有网络统计信息:
    netstat -s

  9. 显示指定localhost的TCP连接信息:
    netstat -t -n -s 127.0.0.1

  10. 显示已经结束的连接信息:
    netstat -an | grep CLOSE_WAIT | awk ‘{print $1}’

通过netstat命令,您可以获得有关网络连接状态、路由表信息、网络统计数据等方面的有用信息,帮助您进行故障排除、网络监视和性能分析。

  1. ss命令

ss命令是一个用于查看套接字(socket)统计信息的工具,通常用于显示各种网络连接状态、路由表信息和接口统计数据。下面是一些ss命令的常用选项和示例:

  1. 显示所有活动连接信息:
    ss

  2. 显示TCP连接:
    ss -t

  3. 显示UDP连接:
    ss -u

  4. 显示监听状态的连接:
    ss -l

  5. 显示UNIX域连接:
    ss -x

  6. 显示具体端口的连接信息(例如端口80):
    ss dst :80

  7. 显示与某个IP地址相关的连接信息:
    ss dst <IP_Address>

  8. 显示活跃连接的统计信息:
    ss -s

  9. 显示进程信息:
    ss -p

  10. 显示详细信息:
    ss -e

  11. 显示内核指定状态的连接信息:
    ss state TIME-WAIT

  12. 显示连接状态为ESTABLISHED的信息:
    ss state established

  13. 显示超时连接信息:
    ss -o state FIN-WAIT-1

通过ss命令,查看更加详细和实时的网络连接信息,分析网络流量、排查故障和监控网络连接状态。ss命令相对于netstat来说功能更为强大和灵活,能够提供更多细化的连接信息和过滤选项。

  1. lsof -i命令
    lsof命令用于显示系统中已打开的文件,包括网络连接、设备文件等。当使用lsof -i时,它将显示当前系统中所有网络连接相关的信息。

以下是一些lsof -i命令的常见选项和示例:

  1. 显示所有打开的网络连接:
    lsof -i

  2. 显示TCP连接:
    lsof -i tcp

  3. 显示UDP连接:
    lsof -i udp

  4. 显示指定端口的连接信息(例如端口80):
    lsof -i :80

  5. 显示指定IP地址的连接信息:
    lsof -i :<IP_Address>

  6. 显示监听状态的连接:
    lsof -i -sTCP:LISTEN

  7. 显示特定用户创建的连接:
    lsof -i -u

  8. 显示特定进程ID创建的连接:
    lsof -i -p

通过lsof -i命令,查看系统中当前打开的网络连接信息,包括TCP连接、UDP连接以及监听状态。这对于分析系统中的网络活动、查找网络连接问题以及监控网络流量非常有用。

  1. nc命令
    nc命令是一个简单而强大的网络工具,常用于处理 TCP 或 UDP 连接。它可以作为一个简单的网络调试工具,也可以作为一个端口监听或者是批处理脚本的一部分。以下是一些nc命令的常见选项和示例:

  2. 在指定的端口上监听TCP连接:
    nc -l -p

  3. 在指定的端口上监听UDP连接:
    nc -u -l -p

  4. 发起TCP连接:
    nc

  5. 发起UDP连接:
    nc -u

  6. 在TCP模式下进行端口扫描:
    nc -z

  7. 使用nc进行文件传输:

    接收端

    nc -l > received_file

    发送端

    nc < file_to_send

  8. 通过nc进行端口转发:

    本地端口转发

    nc -l <local_port> | nc <target_host> <target_port>

    远程端口转发

    nc -l <local_port> | nc -u <target_host> <target_port>

  9. 指定超时时间:
    nc -w <timeout_seconds>

通过nc命令,非常灵活地进行网络连接的建立、端口监听、数据传输等操作。它的功能丰富,可以用于调试、测试和诊断网络连接,是网络管理员和开发人员常用的工具之一。

  1. curl命令
    curl命令是一个使用非常广泛的命令行工具,用于向服务器发送请求并显示响应结果。它支持多种协议,如HTTP、FTP、SMTP等,并且支持对请求和响应进行各种定制。以下是一些curl命令的常见选项和示例:

  2. 发送一个 GET 请求:
    curl

  3. 带自定义请求头发送一个 GET 请求:
    curl -H “Content-Type: application/json”

  4. 带请求体发送 POST 请求:
    curl -X POST -d ‘{“key”: “value”}’

  5. 上传文件:
    curl -F “file=@<file_path>”

  6. 下载文件:
    curl -O

  7. 设置超时时间:
    curl --connect-timeout <timeout_seconds>

  8. 跟踪网络请求过程:
    curl -v

  9. 发送 HTTPS 请求时,不进行SSL验证:
    curl -k

通过curl命令,通过多种协议向服务器发送请求,支持各种请求和响应定制,且可跟踪网络请求过程。curl也广泛应用于自动化测试、接口调试和HTTP/HTTPS相关开发。

  1. tcpdump命令

tcpdump是一个流行的网络抓包工具,可以用来捕获网络数据包,并且能够对捕获的数据包进行实时分析和展示。它支持对网络流量进行详细的监控和分析,是网络管理员和安全专家常用的工具之一。以下是一些tcpdump命令的常见选项和示例:

  1. 抓取指定网络接口的数据包:
    sudo tcpdump -i

  2. 指定抓包数量:
    sudo tcpdump -c -i

  3. 保存数据包到文件:
    sudo tcpdump -i -w <output_file>

  4. 显示数据包的ASCII和HEX格式:
    sudo tcpdump -XX -i

  5. 过滤指定源或目的IP地址的数据包:
    sudo tcpdump -i src <source_IP>
    sudo tcpdump -i dst <destination_IP>

  6. 显示数据包的详细信息:
    sudo tcpdump -v -i

  7. 显示数据包的时间戳:
    sudo tcpdump -tttt -i

  8. 使用过滤器过滤特定协议或端口:
    sudo tcpdump -i tcp port <port_number>
    sudo tcpdump -i icmp

通过tcpdump命令,可以实时监测网络流量,分析网络数据包的内容和传输情况,帮助诊断网络问题、进行安全监控以及进行网络分析。

  1. traceroute命令
    traceroute 是一个用于跟踪数据包从源主机到目标主机经过的路径的命令,它显示数据包在网络中的传输情况,包括经过的路由器和所花费的时间。以下是一些关于 traceroute 命令的详细解释和常用选项:

基本语法:

traceroute <目标主机>

常用选项:

  • -I:使用 ICMP Echo 请求代替 UDP 数据包。
  • -T:使用 TCP SYN 请求代替 UDP 数据包。
  • -n:不进行域名解析,直接显示 IP 地址。
  • -q <查询次数>:设置每个 TTL 值发送的查询次数。
  • -m <最大 TTL 值>:设置最大 TTL 值(跳数)。

示例:

  1. 基本使用:
    traceroute www.example.com

  2. 使用 ICMP Echo 请求:
    traceroute -I www.example.com

  3. 显示 IP 地址而非主机名:
    traceroute -n www.example.com

  4. 指定查询次数和最大 TTL 值:
    traceroute -q 3 -m 30 www.example.com

工作原理:

  1. 发送 UDP 数据包到目标主机,初始 TTL 为 1。
  2. 第一个路由器将 TTL 减少为 0,返回一个 ICMP Time Exceeded 消息。
  3. 源主机收到 Time Exceeded 消息,增加 TTL,再次发送 UDP 数据包。
  4. 重复以上步骤,每次 TTL 递增直到到达目标主机。

通过 traceroute 命令,可以更好地了解数据包在网络中的传输路径,帮助诊断网络故障、分析网络延迟以及优化网络连接。

  1. wget命令
    wget 是一个在命令行下下载文件的工具,可通过指定文件的 URL 来下载文件。它支持各种协议,如 HTTP、HTTPS 和 FTP,并提供了一些有用的选项来管理下载过程。以下是关于 wget 命令的详细解释和一些常用选项:

基本语法:

wget [选项]

常用选项:

  • -O <文件名>:将下载文件保存为指定的文件名。
  • -P <目录>:将下载文件保存到指定目录。
  • -c:断点续传,如果下载中断,可以从上次中断的位置继续下载。
  • -N:只下载比本地文件新的文件。
  • -r:递归下载,可以下载指定 URL 下的所有链接。
  • -q:静默模式,只显示错误和警告信息。

示例:

  1. 基本使用:
    wget

  2. 保存下载文件为指定文件名:
    wget -O <文件名>

  3. 保存下载文件到指定目录:
    wget -P <目录>

  4. 断点续传下载文件:
    wget -c

  5. 只下载比本地文件新的文件:
    wget -N

  6. 递归下载指定 URL 下的所有链接:
    wget -r

更多功能:

除了以上常用选项,wget 还提供了更多功能,例如下载限速、设置 User-Agent、选择代理服务器等。可以通过 man wget 命令查看完整的选项列表和详细用法。

wget 是一个灵活且强大的命令行下载工具,适用于从 Web 获取文件或进行批量下载。它在管理下载任务和网络下载不稳定的情况下非常有用。

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值