CentOS网络配置与管理完全指南

发布于:2025-06-29 ⋅ 阅读:(21) ⋅ 点赞:(0)

1. 网络状态查看与诊断

1.1 ifconfig 命令(传统方式)

# 安装net-tools(CentOS 7/8默认可能未安装)
sudo yum install net-tools -y

# 基础查看命令
ifconfig          # 显示所有接口的IP、MAC、收发包统计等完整信息
ifconfig eth0     # 查看eth0网卡的详细状态,包括:
                  # - RX/TX packets:收发包数量
                  # - errors/dropped:错误和丢包统计
                  # - MTU值:最大传输单元
                  
# 控制接口状态
ifconfig eth0 up       # 启用eth0接口
ifconfig eth0 down     # 禁用eth0接口

1.2 ip 命令(现代推荐)

# 接口管理
ip addr              # 等同于ip a,显示所有接口IPv4/IPv6地址
ip -c addr           # 彩色显示更易读
ip -4 addr           # 仅显示IPv4信息
ip addr show eth0    # 显示eth0详细配置,包括:
                     # - 接口状态(UP/DOWN)
                     # - MAC地址
                     # - IP地址和CIDR
                     # - 广播地址

# 链路控制
ip link set eth0 up  # 启用eth0
ip link set eth0 down # 禁用eth0
ip link show         # 显示所有网络接口的链路层信息

# 统计信息
ip -s link show eth0 # 显示eth0的详细统计信息:
                     # - RX/TX bytes:流量统计
                     # - errors:错误计数
                     # - dropped:丢包计数

1.3 路由管理

# 传统命令
route -n            # 数字格式显示路由表,不解析主机名
                    # 输出包含:
                    # - Destination:目标网络
                    # - Gateway:网关
                    # - Genmask:网络掩码
                    # - Flags:路由标志
                    # - Metric:路由度量值

# 现代命令
ip route            # 显示主路由表
ip route show table main  # 明确指定主路由表
ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0  # 添加静态路由
ip route del 192.168.2.0/24  # 删除路由

# 策略路由
ip rule list        # 显示路由策略

1.4 网络连接状态

# netstat(传统)
netstat -tulnp      # 显示所有TCP/UDP监听端口和对应进程
                    # -t:TCP连接
                    # -u:UDP连接
                    # -l:监听状态
                    # -n:数字显示
                    # -p:显示进程PID和名称

# ss(推荐替代)
ss -tulnp           # 更高效的系统套接字查看工具
ss -s               # 显示汇总统计:
                    # - 总TCP连接数
                    # - 各种状态连接数
                    # - 内存使用情况

# 连接跟踪
ss -tan state established  # 仅显示已建立的TCP连接

2. 静态IP配置详解

2.1 配置文件详解

# 配置文件路径(CentOS7)
/etc/sysconfig/network-scripts/ifcfg-eth0

# 完整配置示例
TYPE=Ethernet                # 接口类型(Ethernet/Bond等)
PROXY_METHOD=none            # 代理设置
BROWSER_ONLY=no
BOOTPROTO=static             # 静态配置(可选:dhcp/none)
DEFROUTE=yes                 # 是否作为默认路由
IPV4_FAILURE_FATAL=no
IPV6INIT=yes                 # 是否初始化IPv6
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0                    # 连接名称
UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  # 唯一标识
DEVICE=eth0                  # 物理设备名
ONBOOT=yes                   # 开机自动启动
IPADDR=192.168.1.100         # 静态IP地址
PREFIX=24                    # 或使用NETMASK=255.255.255.0
GATEWAY=192.168.1.1          # 默认网关
DNS1=8.8.8.8                 # 主DNS
DNS2=8.8.4.4                 # 备DNS
DOMAIN=example.com           # 搜索域
MTU=1500                     # 可选MTU设置

2.2 服务重启与验证

# CentOS7服务管理
systemctl restart network    # 重启网络服务
systemctl status network     # 检查服务状态

# CentOS8 NetworkManager
nmcli connection reload      # 重载配置文件
nmcli connection up eth0     # 激活eth0连接

# 验证配置
ip addr show eth0            # 确认IP配置
ping -c 4 192.168.1.1        # 测试网关连通性
ping -c 4 8.8.8.8            # 测试外网连通性
nslookup google.com          # 测试DNS解析

3. NetworkManager高级管理

3.1 连接管理

# 查看所有连接
nmcli connection show        # 显示所有配置的连接
                            # 输出包含:
                            # - 连接名称
                            # - UUID
                            # - 类型
                            # - 设备

# 查看设备状态
nmcli device status          # 显示物理设备状态
                            # - connected:已连接
                            # - disconnected:未连接
                            # - unavailable:不可用

# 详细连接信息
nmcli connection show eth0   # 显示eth0连接的所有配置

3.2 连接配置示例

# 添加静态IP连接
nmcli connection add type ethernet \
    con-name office-lan \
    ifname eth0 \
    ip4 192.168.10.50/24 \
    gw4 192.168.10.1 \
    ipv4.dns "8.8.8.8 8.8.4.4" \
    ipv4.method manual

# 修改现有连接
nmcli connection modify office-lan \
    ipv4.addresses "192.168.10.100/24" \
    ipv4.gateway "192.168.10.1" \
    ipv4.dns "192.168.10.2 8.8.8.8" \
    connection.autoconnect yes

# 激活连接
nmcli connection up office-lan

4. DNS配置深度解析

4.1 配置文件架构

# 主配置文件
/etc/resolv.conf            # 由NetworkManager动态管理
                            # 典型内容:
                            # nameserver 8.8.8.8
                            # search example.com

# NetworkManager配置
/etc/NetworkManager/NetworkManager.conf
                            # 控制DNS处理行为
                            # 关键参数:
                            # dns=none|default|systemd-resolved
                            # rc-manager=resolvconf|symlink|file

# 接口特定配置
/etc/sysconfig/network-scripts/ifcfg-eth0
                            # 可在接口文件中指定DNS

4.2 永久配置方法

# 方法1:通过NetworkManager
nmcli connection modify eth0 \
    ipv4.dns "1.1.1.1 1.0.0.1" \
    ipv4.dns-search "example.com"
nmcli connection up eth0

# 方法2:修改NetworkManager配置
echo "[main]" > /etc/NetworkManager/conf.d/dns.conf
echo "dns=none" >> /etc/NetworkManager/conf.d/dns.conf
systemctl restart NetworkManager
然后手动编辑/etc/resolv.conf

# 方法3:使用resolvconf(如有安装)
echo "nameserver 1.1.1.1" | resolvconf -a eth0

5. 防火墙高级配置

5.1 服务管理

# 服务控制
systemctl enable --now firewalld  # 启用并立即启动
systemctl mask iptables           # 禁用传统iptables

# 运行时状态
firewall-cmd --state              # 查看运行状态
firewall-cmd --reload             # 重载配置
firewall-cmd --complete-reload    # 完全重启(会断开现有连接)

5.2 区域管理实战

# 查看默认区域
firewall-cmd --get-default-zone

# 创建新区域
firewall-cmd --permanent --new-zone=restricted

# 设置区域规则
firewall-cmd --zone=restricted --add-service=ssh
firewall-cmd --zone=restricted --add-port=8080/tcp
firewall-cmd --zone=restricted --add-source=192.168.2.0/24

# 应用区域到接口
firewall-cmd --zone=restricted --change-interface=eth1

6. 网络诊断高级技巧

6.1 连通性测试

# 基础测试
ping -c 4 -I eth0 8.8.8.8        # 指定源接口
ping -M do -s 1472 8.8.8.8       # 测试MTU路径
ping -6 google.com               # IPv6测试

# 路由诊断
mtr -n 8.8.8.8                   # 实时路由跟踪
traceroute -T -p 443 google.com  # TCP方式跟踪

# 端口测试
nc -zv 192.168.1.1 22            # 测试TCP端口
nc -zvu 192.168.1.1 53           # 测试UDP端口

6.2 抓包分析

# 基础抓包
tcpdump -i eth0 -nn -w capture.pcap  # 抓取原始数据包
tcpdump -i eth0 port 80              # 只抓HTTP流量
tcpdump -i eth0 host 192.168.1.100   # 特定主机流量

# 高级过滤
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn'
tcpdump -i eth0 'icmp and src host 192.168.1.1'

# 流量分析
tshark -r capture.pcap -qz io,phs    # 协议分层统计

7. 生产环境最佳实践

7.1 网络接口绑定

# 创建bond接口
nmcli connection add type bond con-name bond0 ifname bond0 \
    mode active-backup miimon 100

# 添加从属接口
nmcli connection add type bond-slave ifname eth0 master bond0
nmcli connection add type bond-slave ifname eth1 master bond0

# 配置bond IP
nmcli connection modify bond0 \
    ipv4.addresses '192.168.1.200/24' \
    ipv4.gateway '192.168.1.1' \
    ipv4.method manual

7.2 VLAN配置

# 创建VLAN接口
nmcli connection add type vlan \
    con-name vlan10 \
    ifname eth0.10 \
    dev eth0 \
    id 10 \
    ip4 10.10.10.1/24 \
    gw4 10.10.10.254

# 验证配置
ip -d link show eth0.10  # 查看VLAN详细信息

8. 网络性能优化

8.1 调优参数

# 查看当前设置
ethtool -k eth0          # 查看offload功能
ethtool -g eth0          # 查看环形缓冲区

# 优化建议配置
echo "net.core.rmem_max=4194304" >> /etc/sysctl.conf
echo "net.core.wmem_max=4194304" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time=600" >> /etc/sysctl.conf
sysctl -p                # 应用配置

# 接口特定优化
ethtool -C eth0 rx-usecs 100 tx-usecs 100
ethtool -G eth0 rx 4096 tx 4096

9. 网络监控与统计

9.1 实时监控工具

# 带宽监控
nload -m -i 102400 -o 102400 eth0  # 以MB为单位显示
iftop -nN -i eth0                  # 按流量排序显示

# 连接监控
ss -s                              # 连接数统计
netstat -nat | awk '{print $6}' | sort | uniq -c  # 按状态统计

# 高级统计
sar -n DEV 1 5                     # 间隔1秒采样5次
vnstat -l -i eth0                  # 实时流量监控

10. 故障处理流程

10.1 系统化排查步骤

  1. 物理层检查

    • ip link show eth0 确认接口状态
    • ethtool eth0 检查链路协商
    • 检查网线、交换机端口
  2. 网络层验证

    • ping 127.0.0.1 验证本地协议栈
    • ping <网关IP> 验证本地连接
    • traceroute 8.8.8.8 验证路径
  3. 传输层测试

    • nc -zv <IP> <PORT> 测试端口
    • telnet <IP> <PORT> 交互测试
    • tcpdump -i eth0 port <PORT> 抓包分析
  4. 应用层诊断

    • curl -v http://example.com 详细HTTP请求
    • openssl s_client -connect example.com:443 SSL测试
    • 检查应用日志获取详细信息


网站公告

今日签到

点亮在社区的每一天
去签到