一、Linux 网络基础概念
1. 网络接口
- 物理接口:如以太网网卡(
eth0、enp0s3等,命名规则可能因系统版本不同而变化)、无线网卡(wlan0)。 - 虚拟接口:
- 回环接口(
lo):IP 地址127.0.0.1,用于本地进程通信。 - 虚拟网卡(如
docker0、veth设备):常用于容器、虚拟化场景。 - 隧道接口(如
tun、tap):用于 VPN 等网络隧道技术。
- 回环接口(
2. 网络配置核心参数
- IP 地址:标识网络中的设备(如
192.168.1.100)。 - 子网掩码:划分网络位和主机位(如
255.255.255.0)。 - 网关(Gateway):本地网络与其他网络通信的出口(如
192.168.1.1)。 - DNS 服务器:解析域名为 IP 地址(如
8.8.8.8、114.114.114.114)。
二、网络配置工具
1. 临时配置工具(重启失效)
-
ifconfig:- 查看接口信息:
ifconfig或ifconfig eth0。 - 配置 IP 和子网掩码:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0。 - 启用 / 禁用接口:
ifconfig eth0 up/ifconfig eth0 down。
- 查看接口信息:
-
ip命令:- 查看接口信息:
ip addr show或ip a。 - 配置 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 r。 - 添加默认网关:
ip route add default via 192.168.1.1 dev eth0。 - 添加静态路由:
ip route add 10.0.0.0/24 via 192.168.1.2 dev eth0(访问10.0.0.0网段走192.168.1.2网关)。
- 查看路由表:
-
DNS 临时配置:修改
/etc/resolv.conf(部分系统由服务管理,重启后可能被覆盖):nameserver 8.8.8.8 nameserver 114.114.114.114
2. 永久配置(按系统发行版分类)
-
Debian/Ubuntu 系统(使用
netplan,配置文件在/etc/netplan/):
示例配置(/etc/netplan/01-netcfg.yaml):network: version: 2 renderer: networkd ethernets: eth0: 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/RHEL 系统(使用
nmcli或修改/etc/sysconfig/network-scripts/):- 方法 1:
nmcli(NetworkManager 命令行工具):nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 nmcli connection modify eth0 ipv4.gateway 192.168.1.1 nmcli connection modify eth0 ipv4.dns "8.8.8.8 114.114.114.114" nmcli connection modify eth0 ipv4.method manual # 手动配置(默认自动 dhcp) nmcli connection up eth0 # 生效配置 - 方法 2:修改配置文件(
/etc/sysconfig/network-scripts/ifcfg-eth0):TYPE=Ethernet BOOTPROTO=static # 静态配置(dhcp 为自动获取) NAME=eth0 DEVICE=eth0 ONBOOT=yes # 开机启动 IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114
生效配置:sudo systemctl restart network(CentOS 7)或sudo nmcli connection reload(CentOS 8+)。
- 方法 1:
三、网络服务管理
1. 网络服务守护进程
-
NetworkManager:主流发行版默认网络管理服务,支持动态配置、WiFi 管理等,命令行工具为
nmcli,图形工具为nmtui(文本界面)。- 启动 / 停止服务:
sudo systemctl start/stop NetworkManager。 - 开机自启:
sudo systemctl enable NetworkManager。
- 启动 / 停止服务:
-
dhclient:动态获取 IP 地址的客户端工具,如dhclient eth0为eth0接口获取 DHCP 配置。
2. 常用网络服务
- SSH:远程登录服务,默认端口 22,配置文件
/etc/ssh/sshd_config,服务名sshd。 - Nginx/Apache:Web 服务,默认端口 80(HTTP)、443(HTTPS)。
- DNS:如
bind服务,负责域名解析,配置文件/etc/named.conf。 - 防火墙:
firewalld(CentOS 7+):sudo firewall-cmd --zone=public --add-port=80/tcp --permanent(开放 80 端口,永久生效),sudo firewall-cmd --reload(重载配置)。ufw(Ubuntu 默认):sudo ufw allow 22/tcp(允许 SSH 端口),sudo ufw enable(启用防火墙)。
四、网络测试与故障排查工具
1. 连通性测试
ping:测试与目标主机的连通性(ICMP 协议),如ping 8.8.8.8,-c 4限制发送 4 个包。traceroute(或tracepath):追踪数据包到达目标的路径,如traceroute www.baidu.com,查看是否有路由阻塞。
2. 端口与服务测试
telnet:测试目标端口是否开放,如telnet 192.168.1.100 80(测试 80 端口)。nc(netcat):多功能网络工具,测试端口:nc -zv 192.168.1.100 80,传输文件:nc 192.168.1.200 1234 < file.txt(发送)与nc -l 1234 > file.txt(接收)。ss:查看端口监听状态(替代netstat),如ss -tuln(t:TCP,u:UDP,l:监听,n:数字显示),ss -tuln | grep 80查看 80 端口是否被监听。
3. DNS 测试
nslookup:查询域名解析,如nslookup www.baidu.com,查看解析的 IP 地址。dig:更详细的 DNS 查询工具,如dig www.baidu.com,可查看 DNS 服务器、TTL 等信息。
4. 抓包分析
tcpdump:命令行抓包工具,如tcpdump -i eth0 port 80(抓取eth0接口 80 端口的数据包),-w capture.pcap保存到文件(可用 Wireshark 打开分析)。wireshark:图形化抓包工具,需安装,适合复杂网络分析。
五、高级网络配置
1. 网络桥接(Bridge)
- 将多个网络接口合并为一个逻辑接口,常用于虚拟机通信,如 KVM 虚拟机桥接物理网卡。
- 示例(
ip命令临时配置):ip link add name br0 type bridge # 创建桥接接口 br0 ip link set eth0 master br0 # 将 eth0 加入桥接 ip link set br0 up # 启用桥接接口
2. VLAN 配置
- 划分虚拟局域网,隔离不同网络流量,如
eth0.10表示eth0接口上的 VLAN 10。 - 示例:
ip link add link eth0 name eth0.10 type vlan id 10 # 创建 VLAN 10 ip addr add 192.168.10.100/24 dev eth0.10 # 配置 IP ip link set eth0.10 up # 启用接口
3. 网络地址转换(NAT)
- 通过
iptables实现,如将内网 IP 转换为公网 IP 访问互联网:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # eth0 为外网接口
六、实战故障排查示例
-
无法上网:
- 检查接口状态:
ip a确认是否有 IP 地址。 - 检查网关:
ip r确认默认网关是否正确。 - 测试 DNS:
ping 8.8.8.8通但ping www.baidu.com不通,可能 DNS 配置错误。
- 检查接口状态:
-
端口无法访问:
- 检查服务是否启动:
ps aux | grep 服务名。 - 检查端口监听:
ss -tuln | grep 端口号。 - 检查防火墙:
firewall-cmd --list-ports(CentOS)或ufw status(Ubuntu)。
- 检查服务是否启动:
1630

被折叠的 条评论
为什么被折叠?



