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/8172.16.0.0/12192.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/242. 网络命令(ifconfig, ip, netstat, ss, ping, traceroute, nc)
(1)查看网络接口
ifconfig(已被弃用)
bash
ifconfig eth0ip(推荐)
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.8traceroute(跟踪网络路径)
bash
traceroute google.comnc(Netcat,测试端口连通性)
bash
nc -zv 192.168.1.1 223. 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 network4. 端口管理(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

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