系统基本配置¶
本文你会学到:
- 用
ip命令查看网络信息与网卡命名规则 - NetworkManager 与
nmcli的基础配置 - 在 Debian、RHEL 上配置静态 IP 的方法
- DNS 客户端配置与域名解析排查
- 修改主机名与时区的永久设置
- 内核参数调优(
sysctl)的常见场景 - 防火墙(firewalld、ufw)的开放端口操作
- 网络性能诊断命令与工具
- 网络故障排查的系统思路
网络配置¶
查看当前网络状态¶
配置网络之前,先摸清楚现状:
网卡命名规则(现代 Linux 使用"可预测网络接口名"):
eno1:主板 BIOS 内置网卡ens3:主板 BIOS 内置的 PCIe 网卡enp2s0:独立 PCIe 网卡(p2表示 PCIe 插槽 2,s0表示接口 0)eth0:上述命名均不适用时的回退名称
用 nmcli 配置网络¶
绝大多数现代发行版(RHEL、Debian 12+、Ubuntu 等)默认使用 NetworkManager 管理网络,nmcli 是其命令行前端。
nmcli 支持 Tab 补全
nmcli 完整支持 bash-completion,输入 nmcli connection modify eth0 后按 Tab 可列出所有可用属性,无须死记硬背参数名。
配置文件直接编辑¶
不同发行版的网络配置文件格式不同:
Ubuntu 18.04+ 默认使用 Netplan,配置文件为 YAML 格式:
| /etc/netplan/01-netcfg.yaml | |
|---|---|
hosts 与 resolv.conf¶
/etc/hosts 提供本地静态 DNS 解析,优先级高于 DNS 查询,适合写死内网服务器地址:
/etc/resolv.conf 记录 DNS 服务器地址,通常由 NetworkManager 自动管理——不要直接手动修改,重启后会被覆盖:
主机名配置¶
主机名持久化存储在 /etc/hostname(systemd 系统),修改后无需重启即可生效。
同步更新 /etc/hosts
修改主机名后,建议同步将新主机名写入 /etc/hosts(如 127.0.1.1 myserver),避免某些程序反查主机名时超时。
时区与时间配置¶
查看与设置时区¶
时区文件存放于 /usr/share/zoneinfo/,/etc/localtime 是指向对应时区文件的符号链接:
NTP 自动同步¶
大多数发行版使用轻量级的 systemd-timesyncd 作为 NTP 客户端,配置文件为:
| /etc/systemd/timesyncd.conf | |
|---|---|
修改后执行 systemctl restart systemd-timesyncd 生效。
手动校时与硬件时钟¶
虚拟机注意事项
虚拟机的硬件时钟通常与宿主机同步,且默认为 UTC 时区。若发现每次开机时间偏差 8 小时,检查 timedatectl 输出中 RTC in local TZ 是否为 no,以及宿主机的时区配置。
语言与字符集¶
查看与设置系统语言¶
LANG 是所有 LC_* 变量的默认值;LC_ALL 强制覆盖所有 LC_* 变量,优先级最高。
生成与安装 locale¶
内核参数调优(sysctl)¶
内核的很多运行时行为可以通过 sysctl 接口动态调整,无需重新编译内核或重启系统。
查看与临时修改¶
持久化配置¶
将参数写入 /etc/sysctl.d/*.conf(推荐)或 /etc/sysctl.conf:
| /etc/sysctl.d/99-custom.conf | |
|---|---|
配置文件命名约定
/etc/sysctl.d/ 下的文件按字典序加载,数字前缀越大优先级越高(后加载的值覆盖先加载的值)。自定义配置建议使用 99- 前缀,确保覆盖发行版默认值。
防火墙基本配置¶
防火墙工具因发行版而异,但核心操作相同:放行端口/服务、拒绝未知流量。
运行时配置与永久配置
不带 --permanent 的 firewall-cmd 只修改运行时规则,重启 firewalld 后丢失。生产环境必须加 --permanent,并在最后执行 --reload。
发行版差异¶
| 配置项 | Debian / Ubuntu | Red Hat / RHEL |
|---|---|---|
| 网络管理 | Netplan(Ubuntu 18.04+)→ NetworkManager | NetworkManager(nmcli / nmtui) |
| 网络配置文件 | /etc/netplan/*.yaml |
/etc/NetworkManager/system-connections/*.nmconnection |
| 防火墙前端 | ufw → iptables/nftables 后端 |
firewalld → nftables 后端 |
| locale 生成 | locale-gen + update-locale |
dnf install glibc-langpack-* |
| locale 配置文件 | /etc/locale.gen、/etc/default/locale |
/etc/locale.conf |
| 主机名文件 | /etc/hostname |
/etc/hostname |
| 时区链接 | /etc/localtime → /usr/share/zoneinfo/... |
/etc/localtime → /usr/share/zoneinfo/... |