- CentOS6 / RHEL 6
- CentOS 7 / RHEL 7
- CentOS 8 / RHEL 8
- Ubuntu 16.04 及 Debian 9 及以前
- Ubuntu 18.04+ / Debian 10+
1.1 CentOS6 / RHEL 6:基于 ifcfg-ethX 文件(传统方式)
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 # 网络接口名称,通常为 ethX,必须指定 HWADDR=00:0C:29:3E:53:7E # 网卡 MAC 地址(可选),可用于绑定特定设备 TYPE=Ethernet # 连接类型,通常为 Ethernet UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # 唯一标识符(可选) ONBOOT=yes # 是否在系统启动时自动启用该接口 BOOTPROTO=static # 启动时使用的协议类型:static(静态IP)、dhcp、none IPADDR=10.0.0.100 # 静态 IP 地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=10.0.0.2 # 默认网关 DNS1=8.8.8.8 # 主 DNS 服务器 DNS2=114.114.114.114 # 备 DNS 服务器(可选) #重启网卡信息 service network restart #查看网卡状态:该命令适用所有Linux系统 ifconfig
1.2 CentOS 7 / RHEL 7:仍支持 ifcfg-*,也支持 nmcli 管理
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #主要配置及注释 TYPE=Ethernet # 网络类型 BOOTPROTO=none # 启动协议方式,none 表示不使用 DHCP,也可以static NAME=ens33 # 接口名称 DEVICE=ens33 # 同上,必须匹配网卡名称 ONBOOT=yes # 开机自动启动网络 IPADDR=10.0.0.100 # 静态 IP 地址 PREFIX=24 # 子网前缀长度(等价于子网掩码 255.255.255.0) GATEWAY=10.0.0.2 # 默认网关 DNS1=8.8.8.8 # 主 DNS DNS2=1.1.1.1 # 备 DNS #启用配置 systemctl restart network
1.3 CentOS 8 / RHEL 8:推荐使用 nmcli 或 nmtui 配置(仍支持 ifcfg)
使用 nmcli 命令配置静态 IP,不习惯就直接用nmtui,界面配置更直观方便 nmcli con add con-name <连接名> ifname <网卡名> type <连接类型> ipv4.method manual ipv4.addresses <ipv4地址> ipv4.gateway <ipv4网关地址> ipv4.dns <ipv4 dns服务器> nmcli con mod static-ens33 ipv4.dns "8.8.8.8 1.1.1.1" nmcli con mod static-ens33 ipv4.method manual nmcli con up static-ens33 nmcli con down static-ens33 #- con-name:连接名称,可自定义 - type:网络类型,如 ethernet, wifi - ifname:网卡接口名(如 ens33) - ipv4.addresses:静态 IP 地址 + 子网前缀 - ipv4.gateway:IPv4 网关 - ipv4.dns:DNS 服务器地址 - ipv4.method manual:设置为静态 IP
2.1 Ubuntu 16.04 及 Debian 9 及以前:使用 /etc/network/interfaces
vim /etc/network/interfaces #主要配置及注释 auto eth0 # 设置 eth0 在开机时自动启用 iface eth0 inet static # 为 eth0 指定 IPv4 静态配置,dhcp为自动获取,下面的就不用配置了 address 10.0.0.100 # 静态 IP 地址 netmask 255.255.255.0 # 子网掩码 gateway 10.0.0.2 # 默认网关 dns-nameservers 8.8.8.8 114.114.114.114 # DNS 服务器(空格分隔多个) #启用 sudo systemctl restart networking
2.2 Ubuntu 18.04+ / Debian 10+:使用 netplan
#Ubuntu 18.04开始是使用yaml格式的配置,这个格式简单来讲就是需要注意缩进的问题,ansibile的剧本playbook.yml, 以及docker-compose的yml文件都是用的这种格式。 vim /etc/netplan/01-netcfg.yaml #YAML 主要配置及注释: network: version: 2 # netplan 配置语法版本,固定为 2 renderer: networkd # 使用 systemd-networkd 作为后台渲染器(也可为 NetworkManager) ethernets: ens33: # 网卡接口名 dhcp4: no # 不启用 DHCP(启用时为 yes) addresses: - 10.0.0.100/24 # 静态 IP 地址及子网前缀 gateway4: 10.0.0.2 # 默认网关 nameservers: addresses: - 8.8.8.8 # 主 DNS - 223.5.5.5 # 备用 DNS 配置完成后需要应用配置 sudo netplan apply #这里补充一点,Netplan 是 Ubuntu 系统中用于配置网络的声明式配置工具,它本身并不直接配置网络接口, #而是作为一个“配置生成器”或“配置抽象层”, #将 YAML 格式的网络配置文件“渲染”(render)为底层网络管理工具的实际配置。这个“渲染”过程的关键就是 渲染器(renderer)。 #一般地,ubuntu系统是backend 1作为底层网络管理工具即networkd
附:当然比如对nmcli配置网络比较熟悉,后来用netplan不习惯,也是可以通过修改配置来实现的。
即在/etc/netplan/50-cloud-init.yaml文件下,添加渲染器 renderer的配置,以NetworkManager作为渲染器,当然,也需要先在系统上安装
apt install network-manager
在yaml文件里面添加renderer 指定networkmanager作为渲染器。
例如
network: version: 2 renderer: NetworkManager ethernets: ens192: renderer: NetworkManager match: {} addresses: - "192.168.10.199/24" nameservers: addresses: - 61.139.2.69 routes: - to: "0.0.0.0/0" via: "192.168.10.1" networkmanager: uuid: "bc9a68c9-4f66-3ff4-b4b3-cf1b373d9b02" name: "netplan-ens192" passthrough: connection.timestamp: "1756308723" ipv4.never-default: "true" ipv6.method: "disabled" ipv6.ip6-privacy: "-1" proxy._: ""
然后使用 netplan apply去应用配置。
总结
© 版权声明
文章版权归作者所有,未经允许请勿转载。