我尝试使用 nmcli 将静态 IP 分配给我的 Ubuntu 16.04 服务器,它有效,但它仍然保留原始 IP 作为“辅助”IP。我不知道如何摆脱它。 10.163.148.36是服务器的原始IP,10.163.148.194是我希望它切换到的新IP。我使用以下 nmcli 命令来设置 IP 地址:
nmcli connection modify 'Wired connection 1' ipv4.addresses '10.163.148.194/24' ipv4.gateway '10.163.148.2' ipv4.method 'manual' ipv4.ignore-auto-dns 'yes' connection.autoconnect 'yes' ipv4.dns '10.10.10.10 10.20.10.10'
记下 ens160 接口的两个 IP 地址。
aruba@ubuntu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:8a:10:64 brd ff:ff:ff:ff:ff:ff
inet 10.163.148.194/24 brd 10.163.148.255 scope global ens160
valid_lft forever preferred_lft forever
inet 10.163.148.36/24 brd 10.163.148.255 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 2006::b0a3:b9ab:2f96:a461/64 scope global temporary dynamic
valid_lft 604254sec preferred_lft 85254sec
inet6 2006::dc94:ead6:e8ef:8095/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 2591987sec preferred_lft 604787sec
inet6 fe80::941e:5fa3:3571:df76/64 scope link
valid_lft forever preferred_lft forever
我的 nmcli 连接详细信息:
aruba@ubuntu:~$ nmcli connection show "Wired connection 1"
connection.id: Wired connection 1
connection.uuid: d724141e-4c7f-3fc9-97b1-c37e014aebe4
connection.interface-name: --
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: -999
connection.timestamp: 1481582261
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries:
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: -1 (default)
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: 00:50:56:8A:10:64
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options:
802-3-ethernet.wake-on-lan: 1 (default)
802-3-ethernet.wake-on-lan-password: --
ipv4.method: manual
ipv4.dns: 10.1.10.10,10.2.10.10
ipv4.dns-search:
ipv4.dns-options: (default)
ipv4.addresses: 10.163.148.194/24
ipv4.gateway: 10.163.148.1
ipv4.routes:
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
ipv6.method: auto
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (default)
ipv6.addresses:
ipv6.gateway: --
ipv6.routes:
ipv6.route-metric: -1
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.addr-gen-mode: stable-privacy
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: --
GENERAL.NAME: Wired connection 1
GENERAL.UUID: d724141e-4c7f-3fc9-97b1-c37e014aebe4
GENERAL.DEVICES: ens160
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: yes
GENERAL.VPN: no
GENERAL.ZONE: --
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/0
GENERAL.SPEC-OBJECT: /
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 10.163.148.194/24
IP4.ADDRESS[2]: 10.163.148.36/24
IP4.GATEWAY: 10.163.148.2
IP4.DNS[1]: 10.10.10.10
IP4.DNS[2]: 10.20.10.10
IP6.ADDRESS[1]: 2006::b0a3:b9ab:2f96:a461/64
IP6.ADDRESS[2]: 2006::dc94:ead6:e8ef:8095/64
IP6.ADDRESS[3]: fe80::941e:5fa3:3571:df76/64
IP6.GATEWAY: fe80::213:1aff:fec7:f857
最后,我的 NetworkManager 配置:
aruba@ubuntu:~$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=keyfile,ofono
dns=dnsmasq
[ifupdown]
managed=true
答案1
在“Red Hat”中,语法如下:
nmcli con mod "Wired connection 1" -ipv4.addresses "10.163.148.194"
您只需在您的属性前添加一个减号
它在 Ubuntu 中也可能像这样工作……?
答案2
我也遇到过同样的情况,除了使用“ip addr del”命令删除旧IP之外,我没有找到任何其他解决方案,例如:
ip addr del 10.163.148.36/24 dev ens160
答案3
这是在 Fedora 29 中对我有用的(在 RHEL/CentOS 中可能工作得很好):
nmcli con mod ens192 ipv4.addresses "" ipv4.gateway ""
然后只需弹起界面即可拾取更改:
nmcli con down ens192; nmcli con up ens192
答案4
我在 Fedora 安装中使用以下命令将其删除
nmcli con mod end192 ipv4.method manual
这将停止 DHCP 连接并且仅分配已配置的静态 IPv4 地址。