菜鸟科技网

Linux网络常用命令有哪些?

Linux作为开源操作系统,在网络管理领域应用广泛,其内置的命令行工具为网络配置、监控和故障排查提供了高效支持,掌握Linux网络常用命令是系统管理员和开发者的必备技能,这些命令涵盖了从网络状态查看、连接测试到数据包捕获等多个维度,能够帮助用户快速定位和解决网络问题,以下将详细介绍这些命令的功能、用法及实际应用场景。

Linux网络常用命令有哪些?-图1
(图片来源网络,侵删)

网络状态查看命令

  1. ifconfig
    ifconfig是传统的网络接口配置工具,用于显示或修改网络接口的参数,在较新的Linux发行版中,其功能逐渐被ip命令取代,但部分系统仍保留该命令。

    • 基本用法:ifconfig 查看所有网络接口信息,ifconfig eth0 查看指定接口(如eth0)的IP地址、MAC地址、子网掩码等。
    • 高级用法:ifconfig eth0 up/down 启用或禁用接口,ifconfig eth0 192.168.1.100 netmask 255.255.255.0 配置静态IP地址。
  2. ip
    ip命令是ifconfig的替代品,功能更强大,支持IPv4和IPv6。

    • 常用参数:
      • ip addr show:显示所有网络接口的IP地址信息。
      • ip addr add 192.168.1.100/24 dev eth0:为eth0添加IP地址。
      • ip link set eth0 up:启用接口。
  3. netstat
    netstat用于显示网络连接、路由表、接口统计等信息。

    • 常用选项:
      • netstat -tuln:显示所有监听的TCP和UDP端口。
      • netstat -an:显示所有连接,包括监听和非监听状态。
      • netstat -i:显示网络接口统计信息。
  4. ss
    ss是netstat的替代工具,速度更快,默认显示TCP套接字信息。

    • 常用选项:
      • ss -tuln:显示监听的TCP和UDP端口。
      • ss -t:显示所有TCP连接。

网络连接测试命令

  1. ping
    ping用于测试与目标主机的连通性,通过发送ICMP报文并接收响应来判断网络延迟和丢包率。

    • 基本用法:ping 192.168.1.1ping www.baidu.com
    • 高级选项:ping -c 4 192.168.1.1 发送4个报文后退出,ping -i 2 192.168.1.1 设置间隔时间为2秒。
  2. traceroute/tracert
    traceroute用于显示数据包到达目标主机所经过的路由路径。

    • Linux中常用traceroute www.baidu.com,Windows中使用tracert
    • 选项:traceroute -n 直接显示IP地址,不进行DNS解析。
  3. telnet
    telnet用于测试远程服务器的端口是否可达,也可用于简单的远程登录。

    • 用法:telnet 192.168.1.1 80 测试目标主机的80端口是否开放。
  4. nc/netcat
    nc被称为“网络工具瑞士军刀”,用于创建TCP/UDP连接、传输数据等。

    • 常用场景:
      • nc -l 1234 在本地1234端口监听连接。
      • nc 192.168.1.1 1234 连接远程主机的1234端口。

网络数据包分析命令

  1. tcpdump
    tcpdump是强大的网络抓包工具,用于捕获和分析网络数据包。

    • 基本用法:tcpdump -i eth0 捕获eth0接口的所有数据包。
    • 高级选项:
      • tcpdump -i eth0 host 192.168.1.1 捕获与指定主机通信的数据包。
      • tcpdump -i eth0 port 80 捕获80端口的数据包。
      • tcpdump -w capture.pcap 将捕获结果保存到文件。
  2. wireshark
    wireshark是图形化网络分析工具,功能比tcpdump更直观,但需要安装GUI环境。

    • 用法:通过命令行wireshark启动,选择接口后即可开始抓包和分析。

网络配置与管理命令

  1. route
    route用于显示和操作IP路由表。

    • 常用选项:
      • route -n 显示路由表(以数字形式显示IP地址)。
      • route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 添加静态路由。
  2. hostname
    hostname用于查看或设置系统的主机名。

    • 用法:hostname 查看当前主机名,hostname newname 设置临时主机名。
  3. nslookup/dig
    nslookup和dig用于DNS查询,用于解析域名对应的IP地址。

    • nslookup用法:nslookup www.baidu.com
    • dig用法:dig www.baidu.com,提供更详细的DNS信息。
  4. iptables
    iptables是Linux内核的防火墙工具,用于配置规则链。

    • 基本用法:
      • iptables -L 列出所有规则。
      • iptables -A INPUT -p tcp --dport 22 -j ACCEPT 允许22端口(SSH)的访问。

网络性能监控命令

  1. iftop
    iftop用于实时监控网络带宽使用情况,显示每个主机的流量。

    • 用法:iftop -i eth0 监控eth0接口的流量。
  2. nethogs
    nethogs按进程显示网络带宽使用情况,便于定位占用带宽的进程。

    • 用法:nethogs 启动监控。
  3. sar
    sar是系统性能监控工具,可监控网络接口的吞吐量。

    • 用法:sar -n DEV 1 5 每秒监控一次网络接口,共5次。

实际应用场景示例

  1. 排查无法上网问题

    • 使用ping 8.8.8.8测试外网连通性,若不通则检查ip addr确认IP配置,再用route -n查看网关是否正确。
    • 若本地网络正常但无法解析域名,使用nslookup www.baidu.com检查DNS配置。
  2. 监控服务器端口状态

    • 使用ss -tuln查看所有监听端口,确认服务是否正常启动。
    • 若发现异常端口,结合tcpdump -i eth0 port 端口号抓包分析。
  3. 优化网络带宽

    • 使用iftopnethogs定位高流量进程,结合iptables限制异常IP的访问。

相关问答FAQs

Q1: 如何在Linux中永久修改静态IP地址?
A1: 以Ubuntu系统为例,编辑/etc/netplan/01-netcfg.yaml文件,添加以下配置:

network:  
  version: 2  
  ethernets:  
    eth0:  
      dhcp4: no  
      addresses: [192.168.1.100/24]  
      gateway4: 192.168.1.1  
      nameservers:  
        addresses: [8.8.8.8, 114.114.114.114]  

保存后运行sudo netplan apply使配置生效,CentOS系统则需修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,设置BOOTPROTO=static并配置IP、网关和DNS。

Q2: 如何使用tcpdump捕获特定主机的HTTP流量?
A2: 使用以下命令捕获与目标主机(如192.168.1.100)的80端口(HTTP)相关的数据包:

tcpdump -i eth0 host 192.168.1.100 and port 80 -w http_capture.pcap  

参数说明:-i eth0指定接口,host 192.168.1.100限制目标主机,port 80限制80端口,-w将结果保存为文件,捕获完成后,可用Wireshark打开http_capture.pcap文件进行详细分析。

分享:
扫描分享到社交APP
上一篇
下一篇