ifconfig

  • 用于配置和显示网络接口的详细信息,包括 IP 地址、网络掩码、广播地址、MAC 地址等。
  • 可以启用或禁用网络接口。
# 查看所有网络接口的配置
ifconfig

# 配置某个接口的 IP 地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0

# 启用网络接口
ifconfig eth0 up

# 禁用网络接口
ifconfig eth0 down

ip

  • ip 命令是功能更强大的网络配置工具,能够配置 IP 地址、路由、网络接口以及网络命名空间等。
  • 通过该命令可以显示和修改所有网络配置相关的信息。
# 查看所有网络接口的信息
ip addr show

# 为网络接口添加 IP 地址
ip addr add 192.168.1.100/24 dev eth0

# 删除网络接口的 IP 地址
ip addr del 192.168.1.100/24 dev eth0

# 启用网络接口
ip link set eth0 up

# 禁用网络接口
ip link set eth0 down

# 查看路由表
ip route show

# 添加默认网关
ip route add default via 192.168.1.1

ping

  • ping 用于测试主机之间的连通性,通过向目标主机发送 ICMP 请求并接收响应来测试网络连接状况。
  • 可以用来测量网络的延迟(RTT,Round Trip Time)。
# 测试与远程主机的连通性
ping www.google.com

# 指定发送数据包的数量(4 个)
ping -c 4 www.google.com

netstat/ss

  • netstat 命令用于显示网络连接、路由表、接口统计信息以及多播成员。
  • ss 是 netstat 的替代工具,用于显示更详细的套接字(socket)信息,速度比 netstat 快。
# 显示所有当前的网络连接
netstat -an

# 查看系统中所有监听的端口
netstat -tuln

# 使用 ss 显示监听的端口
ss -tuln

# 显示详细的 TCP 连接信息
ss -ta

traceroute

  • traceroute 用于显示从本地主机到目标主机之间经过的路由节点(跳数),帮助定位网络故障点或延迟来源。
  • 它通过向目的地发送 TTL 递增的 ICMP 数据包,并逐步显示路径中的各个路由节点。
# 显示到目标主机的路由路径
traceroute www.google.com

# 使用 ICMP 进行路由追踪
traceroute -I www.google.com

nslookup/dig

  • nslookup 和 dig 是 DNS 查询工具,用于查询域名解析信息。
  • nslookup 是较老的工具,dig 提供更多详细信息并且功能更强大。
# 使用 nslookup 查询域名的 IP 地址
nslookup www.google.com

# 使用 dig 查询域名的详细 DNS 解析记录
dig www.google.com

# 反向查询 IP 对应的域名
dig -x 8.8.8.8

route

  • route 命令用于查看和配置系统的路由表。
  • 主要用于管理网络流量的路由路径,例如添加、删除或显示网关的路由规则。
# 显示当前的路由表
route -n

# 添加默认网关
route add default gw 192.168.1.1

# 删除路由
route del -net 192.168.1.0/24 gw 192.168.1.1

ethtool

  • ethtool 命令用于查询和修改网卡(Ethernet device)的配置和状态,支持硬件属性的查看与设置。
  • 查看和修改网络接口的硬件参数,如速率、双工模式、自协商模式等。
  • 排查网络接口性能问题,或调整网卡参数以优化网络性能。
# 显示网卡 eth0 的硬件信息
ethtool eth0

# 禁用网卡的自协商功能
ethtool -s eth0 autoneg off

# 设置网卡速率为 100Mbps,全双工模式
ethtool -s eth0 speed 100 duplex full

iptables/nftables

  • iptables 是 Linux 系统的防火墙工具,用于配置网络包过滤规则,管理入站和出站的网络流量。
  • nftables 是 iptables 的替代工具,功能更强大且更灵活,推荐在新系统中使用。
  • 配置防火墙规则,限制或允许某些端口的访问。
  • 设置 NAT(网络地址转换)规则,实现路由功能。
# 列出当前的 iptables 规则
iptables -L

# 允许特定端口的流量(如 22 端口的 SSH 连接)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 删除规则
iptables -D INPUT -p tcp --dport 22 -j ACCEPT

# 清空所有规则
iptables -F

nmcli

nmcli 是 NetworkManager 的命令行接口,用于配置网络连接、管理网络设备和显示网络状态。

# 查看当前的网络连接
nmcli con show

# 启用网络连接
nmcli con up id "Wired connection 1"

# 禁用网络连接
nmcli con down id "Wired connection 1"

# 创建新的有线连接
nmcli con add type ethernet ifname eth0