Skip to content
xiaoyang 的头像xiaoyang发布于 2025-03-032,405 字阅读约 8 分钟浏览加载中

Linux 网络管理 ​

本章介绍 Linux 网络管理的基础知识,包括 IP 地址、DNS、网关、子网掩码等网络基本概念,常用的网络工具命令,Linux 网络配置(静态/动态 IP),端口管理,以及使用 tcpdump 进行网络抓包分析。

1. 网络基本概念(IP, DNS, 网关, 子网掩码) ​

(1)IP 地址(Internet Protocol Address) ​

IP 地址用于标识网络中的设备,每个设备都有唯一的 IP 地址。

  • IPv4:如 192.168.1.1,由 4 组 8 位二进制(共 32 位)组成。
  • IPv6:如 2001:db8::1,采用 128 位,提供更大地址空间。

IP 地址分为两类:

  • 公网 IP:互联网中唯一,如 8.8.8.8(Google DNS)。

  • 私有 IP

    (局域网使用):

    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16

(2)DNS(Domain Name System) ​

DNS 将域名(如 www.google.com)解析为 IP 地址(如 142.250.72.68)。 常见公共 DNS:

  • Google DNS:8.8.8.8 / 8.8.4.4
  • Cloudflare DNS:1.1.1.1
  • OpenDNS:208.67.222.222

查看 DNS 解析:

bash
nslookup google.com
dig google.com

(3)网关(Gateway) ​

网关是连接不同网络的设备(如路由器)。默认网关用于访问外部网络:

bash
ip route show

示例输出:

default via 192.168.1.1 dev eth0 proto static

表示网关 IP 为 192.168.1.1。

(4)子网掩码(Subnet Mask) ​

子网掩码用于区分网络部分和主机部分:

  • 255.255.255.0(/24):可容纳 254 个主机。
  • 255.255.0.0(/16):可容纳 65534 个主机。

计算子网:

bash
ipcalc 192.168.1.0/24

2. 网络命令(ifconfig, ip, netstat, ss, ping, traceroute, nc) ​

(1)查看网络接口 ​

ifconfig(已被弃用) ​

bash
ifconfig eth0

ip(推荐) ​

bash
ip a  # 查看所有网络接口信息
ip link show  # 查看网络接口状态

(2)网络连接状态 ​

netstat(已被 ss 替代) ​

bash
netstat -tulnp  # 显示所有监听端口

ss(推荐) ​

bash
ss -tulnp  # 显示 TCP/UDP 监听端口
ss -s  # 显示连接统计信息

(3)测试网络连接 ​

ping(测试主机是否可达) ​

bash
ping -c 4 8.8.8.8

traceroute(跟踪网络路径) ​

bash
traceroute google.com

nc(Netcat,测试端口连通性) ​

bash
nc -zv 192.168.1.1 22

3. Linux 网络配置(静态 IP / 动态 IP) ​

(1)动态 IP(DHCP) ​

bash
dhclient eth0  # 获取 DHCP 分配的 IP

(2)静态 IP 配置 ​

编辑 /etc/network/interfaces(Debian/Ubuntu):

bash
auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

然后重启网络:

bash
systemctl restart networking

在 RHEL/CentOS,编辑 /etc/sysconfig/network-scripts/ifcfg-eth0:

ini
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes

重启网络:

bash
systemctl restart network

4. 端口管理(netstat, lsof, ss) ​

(1)使用 netstat ​

bash
netstat -tulnp  # 查看监听的端口

(2)使用 lsof ​

bash
lsof -i :80  # 查看占用 80 端口的进程

(3)使用 ss ​

bash
ss -tulnp  # 显示监听的 TCP/UDP 端口
ss -at | grep ESTAB  # 查看已建立的 TCP 连接

5. 使用 tcpdump 进行网络抓包 ​

(1)基本用法 ​

bash
tcpdump -i eth0

抓取 TCP 端口 80(HTTP)的数据包:

bash
tcpdump -i eth0 port 80

(2)保存抓包 ​

bash
tcpdump -i eth0 -w capture.pcap

使用 Wireshark 分析 capture.pcap 文件。

(3)过滤特定数据 ​

bash
tcpdump -i eth0 src 192.168.1.1
tcpdump -i eth0 dst port 443
DISCUSSION

评论区

欢迎分享你的思考、补充或问题。

基于 VitePress 搭建