启用nmcli管理请看这篇:
解决nmcli未托管设备的问题
1、设置静态IP
1.1、添加连接配置
语法
nmcli connection add type ethernet con-name ${配置名称} ifname ${设备名称} ipv4.addresses ${IP及掩码} ipv4.method ${连接模式: manual/auto}
假设当前的环境如下:
- 需要新建的配置名称:
ens33-static
- 需要连接的设备名称:
ens33
- 需要设置的IP地址:
172.20.0.5
- IP的子网掩码:
24
- 连接模式:
手动配置(manual)
、自动获取(auto)
那么需要执行的命令则是:
nmcli connection add type ethernet con-name ens33-static ifname ens33 ipv4.addresses 172.20.0.5/24 ipv4.method manual
执行结果
root@debian:~# nmcli connection add type ethernet con-name ens33-static ifname ens33 ipv4.addresses 172.20.0.5/24 ipv4.method manual
连接 "ens33-static" (2cde3de4-88b6-4622-8cc2-2fba6189da4f) 已成功添加。
执行完成之后,我们可以使用下面的命令查看当前连接配置列表
nmcli connection
结果如下:
root@debian:/etc/NetworkManager# nmcli connection
NAME UUID TYPE DEVICE
ens33-static 2cde3de4-88b6-4622-8cc2-2fba6189da4f ethernet ens33
ens34-static 490160c8-6f84-4ae2-bfef-bf85157f5ef2 ethernet ens34
有线连接 1 f396cc7a-5bf1-37f1-b148-12b0843d149d ethernet --
Ifupdown (ens34) 6f9b7967-f4da-d090-abd1-b5a6b9fd8e4b ethernet --
然后我们可以删除默认的连接配置
nmcli connection delete 有线连接\ 1
执行结果
root@debian:/etc/NetworkManager# nmcli connection
NAME UUID TYPE DEVICE
ens33-static 2cde3de4-88b6-4622-8cc2-2fba6189da4f ethernet ens33
ens34-static 490160c8-6f84-4ae2-bfef-bf85157f5ef2 ethernet ens34
有线连接 1 f396cc7a-5bf1-37f1-b148-12b0843d149d ethernet --
Ifupdown (ens34) 6f9b7967-f4da-d090-abd1-b5a6b9fd8e4b ethernet --
root@debian:/etc/NetworkManager# nmcli connection delete 有线连接\ 1
成功删除连接 "有线连接 1" (f396cc7a-5bf1-37f1-b148-12b0843d149d)。
root@debian:/etc/NetworkManager# nmcli connection
NAME UUID TYPE DEVICE
ens33-static 2cde3de4-88b6-4622-8cc2-2fba6189da4f ethernet ens33
ens34-static 490160c8-6f84-4ae2-bfef-bf85157f5ef2 ethernet ens34
Ifupdown (ens34) 6f9b7967-f4da-d090-abd1-b5a6b9fd8e4b ethernet --
1.2、启用连接
语法
nmcli connection up ${连接配置名称}
执行结果
root@debian:/etc/NetworkManager# nmcli connection up ens33-static
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
然后查看IP:
root@debian:/etc/NetworkManager# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: ens33: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 00:0c:29:19:62:ae brd ff:ff:ff:ff:ff:ff
inet 172.20.0.5/24 brd 172.20.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::32cc:fd67:4fe2:a9bc/64 scope link tentative noprefixroute
valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:19:62:b8 brd ff:ff:ff:ff:ff:ff
inet 10.0.5.5/24 brd 10.0.5.255 scope global noprefixroute ens34
valid_lft forever preferred_lft forever
inet 10.0.5.4/24 brd 10.0.5.255 scope global secondary dynamic ens34
valid_lft 762sec preferred_lft 762sec
inet6 fd15:4ba5:5a2b:1001:4aa6:e7d5:1e57:3c6/64 scope global dynamic noprefixroute
valid_lft 86373sec preferred_lft 14373sec
inet6 fe80::f95d:a50b:a701:b20/64 scope link noprefixroute
valid_lft forever preferred_lft forever
这时候看到有两个IP
,这是因为当前系统有两个网络管理程序,所以冲突了,只需要修改networking
服务的配置文件即可:
root@debian:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
#auto ens33
#iface ens33 inet dhcp
#auto ens34
#iface ens34 inet dhcp
root@debian:~#
然后重新应用连接:
root@debian:~# nmcli device reapply ens34
成功重新应用连接到设备 "ens34"。
然后再查看IP
:
这时候,IP已经正确了。
1.3、修改/添加配置参数
1.3.1、设置DNS
单独的设置了IP还是无法解析域名的,所以我们需要添加DNS
解析服务器过程如下:
查看连接UUID
root@debian:~# nmcli connection
NAME UUID TYPE DEVICE
ens33-static 2cde3de4-88b6-4622-8cc2-2fba6189da4f ethernet ens33
ens34-static 490160c8-6f84-4ae2-bfef-bf85157f5ef2 ethernet ens34
dhcp c17feb8a-4e17-4bc3-a252-54b08a762d70 ethernet --
ens33-dhcp 11f8a609-63dd-4d06-94c6-3a77e8efaf77 ethernet --
Ifupdown (ens33) 108b861f-800d-98ce-9ab4-4ed2c57e11f1 ethernet --
添加DNS
地址
nmcli connection modify uuid 490160c8-6f84-4ae2-bfef-bf85157f5ef2 ipv4.dns 114.114.114.114
配置过程:
root@debian:~# ping baidu.com
ping: baidu.com: 域名解析暂时失败
root@debian:~# nmcli connection modify
filename help id Ifupdown\ \(ens33\) path --temporary uuid
root@debian:~# nmcli connection modify uuid
108b861f-800d-98ce-9ab4-4ed2c57e11f1 11f8a609-63dd-4d06-94c6-3a77e8efaf77 2cde3de4-88b6-4622-8cc2-2fba6189da4f 490160c8-6f84-4ae2-bfef-bf85157f5ef2 c17feb8a-4e17-4bc3-a252-54b08a762d70
root@debian:~# nmcli connection modify uuid 490160c8-6f84-4ae2-bfef-bf85157f5ef2
Display all 229 possibilities? (y or n)
root@debian:~# nmcli connection modify uuid 490160c8-6f84-4ae2-bfef-bf85157f5ef2 ipv4.dns 114.114.114.114
root@debian:~# nmcli device reapply ens34
成功重新应用连接到设备 "ens34"。
root@debian:~# ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=46.6 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=46.6 ms
^C
--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 6ms
rtt min/avg/max/mdev = 46.550/46.596/46.643/0.220 ms