1. 首页 > 技术教程 > 正文

网络参数设置:IP、网关、DNS 静态配置与域名解析

网络参数设置:IP、网关、DNS 静态配置与域名解析

在 Linux 服务器运维中,网络参数设置(IP、网关、DNS 静态配置)和域名解析是每个运维人必须啃下的硬骨头。配错了,服务器直接失联。主机选这篇 Linux 教程,直接带你手撸配置,搞定静态 IP 和 DNS,顺便解决域名解析的坑。别问为什么,照着做就行。

网络参数设置:IP、网关、DNS 静态配置与域名解析的图片

静态 IP 配置:别再被 DHCP 坑了

DHCP 虽然方便,但服务器重启后 IP 变了,你就得满机房找显示器。静态 IP 是生产环境的标配。不同发行版配置方式不同,这里只讲 CentOS/RHEL 7+ 和 Ubuntu 18.04+ 的方案。

CentOS 7/8 的网卡配置

CentOS 用 `ifcfg-*` 文件,路径在 `/etc/sysconfig/network-scripts/`。找到你的网卡名,比如 `ens33`。

编辑网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下内容(示例 IP:192.168.1.100/24,网关:192.168.1.1)

BOOTPROTO=static # 静态模式
ONBOOT=yes # 开机自启
IPADDR=192.168.1.100 # 静态 IP
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1 # 网关
DNS1=8.8.8.8 # 首选 DNS
DNS2=114.114.114.114 # 备用 DNS

保存后重启网络服务:

systemctl restart network # CentOS 7

或者

nmcli connection reload # CentOS 8+ 推荐

Ubuntu 18.04+ 的 Netplan 配置

Ubuntu 从 18.04 开始用 Netplan,配置文件在 `/etc/netplan/` 下,通常是 `01-netcfg.yaml` 或 `50-cloud-init.yaml`。

编辑 Netplan 配置

vim /etc/netplan/01-netcfg.yaml

示例配置(缩进必须严格)

network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no # 关闭 DHCP
addresses:
– 192.168.1.100/24 # IP 和子网掩码
gateway4: 192.168.1.1 # 网关
nameservers:
addresses:
– 8.8.8.8
– 114.114.114.114

应用配置:

netplan apply # 无报错即生效

**老鸟叮嘱**:Ubuntu 的 Netplan 缩进用两个空格,Tab 会导致报错。万一报错了别慌,检查 `/var/log/syslog` 里的错误信息,或者用 `netplan try` 先测试,30 秒后自动回滚。

DNS 静态配置:解析不对,一切白费

有时候 IP 能通,但域名解析失败,就是 DNS 没配好。除了在网卡配置里写 DNS,还可以全局设置。

全局 DNS 配置(/etc/resolv.conf)

编辑 DNS 配置文件

vim /etc/resolv.conf

写入以下内容

nameserver 8.8.8.8
nameserver 114.114.114.114

但这个文件可能被 `systemd-resolved` 或 NetworkManager 覆盖。保险做法是用 `nmcli` 或直接修改网卡配置。

测试 DNS 解析

用 dig 测试域名解析(需要先安装 dnsutils)

dig baidu.com

用 nslookup 测试

nslookup baidu.com

如果 `dig` 返回 `connection timed out`,说明 DNS 服务器不可达或防火墙拦截了 53 端口。

**老鸟叮嘱**:不要在 `/etc/resolv.conf` 里写超过 3 个 nameserver,部分系统只认前两个。另外,内网环境用内网 DNS,外网用公共 DNS,别混用。

域名解析实战:从 /etc/hosts 到 DNS 缓存

域名解析不只是配 DNS,还包括本机解析和缓存清理。

手动绑定域名(/etc/hosts)

测试环境或临时解析,直接改 `/etc/hosts`:

编辑 hosts 文件

vim /etc/hosts

添加一行

192.168.1.200 myapp.local

这样 `ping myapp.local` 就会直接解析到 192.168.1.200,不走 DNS。

清理 DNS 缓存

`systemd-resolved` 有缓存,改了 DNS 后不生效时,清一下:

清理 systemd-resolved 缓存

systemd-resolve –flush-caches

或者重启 resolved 服务

systemctl restart systemd-resolved

对于 `dnsmasq` 缓存的清理:

重启 dnsmasq

systemctl restart dnsmasq

**老鸟叮嘱**:生产环境改 DNS 后,一定要 `ping` 一个外网域名(如 `baidu.com`)确认解析正常。有时防火墙只放过 53 端口,但 DNS 服务器本身不可用,用 `telnet 8.8.8.8 53` 测试端口连通性。

FAQ

1. Linux 网络配置改了之后不生效怎么办?

检查配置语法错误,CentOS 用 `systemctl status network`,Ubuntu 用 `netplan try`。或者重启网络服务:`systemctl restart networking`(Ubuntu)。

2. 静态 IP 配好了,但外网 ping 不通?

先检查网关 `ping 192.168.1.1`,再检查路由表 `ip route show`。如果网关不通,可能是 IP 冲突或网关配置错误。

3. DNS 配置后,域名解析超时是什么原因?

防火墙拦截了 53 端口,或者 DNS 服务器不可达。用 `telnet 8.8.8.8 53` 测试,不通就检查防火墙规则 `iptables -L -n`。

4. Linux 小白可以直接用 root 账号操作网络配置吗?

可以,但建议用 `sudo`。root 权限下改错了网络文件,可能导致 SSH 掉线。推荐用 `sudo -i` 切换后操作,或者用 `vim` 前备份原文件。

5. 改了 /etc/resolv.conf 后重启就还原了?

因为 NetworkManager 或 `systemd-resolved` 接管了 DNS。改网卡配置里的 `DNS1` 才是永久方案,或者禁用 NetworkManager。

6. 主机选教程里说用 `netplan apply` 报错了,怎么回滚?

用 `netplan try` 测试,如果报错,等待 30 秒自动回滚。或者手动执行 `netplan generate` 重新生成配置。

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9421.html 商家投稿邮箱:zhujixuanblog@qq.com