CentOS 7 中静态 IP 以及 DNS 的配置

设置静态 IP

编辑配置文件

root@localhost:~# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

修改以下配置项

1
2
3
4
5
BOOTPROTO="static" #dhcp改为static 
ONBOOT="yes" #开机启用本配置
IPADDR=192.168.5.192 #静态IP
GATEWAY=192.168.4.1 #默认网关
NETMASK=255.255.252.0 #子网掩码

修改后的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@localhost:~# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="9281a4f6-b04e-4007-8af0-b05a69e6a5aa"
DEVICE="enp0s3"
ONBOOT="yes"
IPADDR=192.168.5.192
GATEWAY=192.168.4.1
NETMASK=255.255.252.0

重启网络服务

root@localhost:~# systemctl restart network.service

查看修改后的网络信息

1
2
3
4
5
6
7
8
9
10
11
12
13
root@localhost:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:79:22:ab brd ff:ff:ff:ff:ff:ff
inet 192.168.5.192/22 brd 192.168.7.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::3723:8466:a91:fc59/64 scope link
valid_lft forever preferred_lft forever

配置 DNS

Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。

因此在 CentOS 7 中,手工设置 /etc/resolv.conf 里的 DNS,过了一会,发现被系统重新覆盖或者清除了。

NetworkManager 可以用于以下类型的连接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移动3G)以及 IP-over-InfiniBand。针对与这些网络类型,NetworkManager 可以配置他们的网络别名,IP 地址,静态路由,DNS,VPN连接以及很多其它的特殊参数。

可以用命令行工具 nmcli 来控制 NetworkManager。

验证网络管理器服务的状态

1
2
3
4
5
6
7
8
root@localhost:~# systemctl status NetworkManager.service
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2017-03-19 13:22:05 CST; 8min ago
Docs: man:NetworkManager(8)
Main PID: 626 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
└─626 /usr/sbin/NetworkManager --no-daemon

显示设备状态

1
2
3
4
root@localhost:~# nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected enp0s3
lo loopback unmanaged --

显示当前连接(包括不活动的)

1
2
3
root@localhost:~# nmcli connection show
NAME UUID TYPE DEVICE
enp0s3 9281a4f6-b04e-4007-8af0-b05a69e6a5aa 802-3-ethernet enp0s3

添加 DNS 设置到指定连接中

1
2
3
root@localhost:~# nmcli connection modify "enp0s3" ipv4.dns 8.8.8.8
root@localhost:~# nmcli connection modify "enp0s3" +ipv4.dns 223.5.5.5
root@localhost:~# nmcli connection modify "enp0s3" +ipv4.dns 223.6.6.6

将配置生效

1
2
root@localhost:~# nmcli connection up enp0s3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

查看网络接口属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@localhost:~# nmcli dev show enp0s3
GENERAL.DEVICE: enp0s3
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:79:22:AB
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: enp0s3
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.5.192/22
IP4.GATEWAY: 192.168.4.1
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 223.5.5.5
IP4.DNS[3]: 223.6.6.6
IP6.ADDRESS[1]: fe80::3723:8466:a91:fc59/64
IP6.GATEWAY: