使用 nmcli/nmtui 固定、增加 IP
安装
# Debian、Ubuntu
apt update
apt-get -y install network-manager
# openSUSE
zypper -n install NetworkManager-tui
systemctl enable NetworkManager
systemctl restart NetworkManager
查看网卡
# 查看网卡接口
nmcli device status
nmcli d
# CentOS 系列结果示例
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
docker0 bridge connected (externally) docker0
ens192 ethernet connected ens192
lo loopback connected (externally) lo
vethe85a065 ethernet unmanaged --
# Debian 系列结果示例
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected Wired connection 1
lo loopback connected (externally) lo
ens160 ethernet unmanaged --
# 显示连接信息
nmcli con show
# CentOS 系列结果示例
NAME UUID TYPE DEVICE
ens160 f74e6149-3a11-3b7e-a9e8-f2db9fec9dab ethernet ens160
ens192 c76b0b15-caed-3c5f-91c0-c5989cc6a131 ethernet ens192
docker0 610da95f-b9d2-42c4-a79c-33f7ba7ddcc1 bridge docker0
lo 7c874d91-fa9f-4389-92aa-16bed70507ab loopback lo
# Debian 系列结果示例
NAME UUID TYPE DEVICE
Wired connection 1 970372a1-c69f-3459-8a10-589e52407eb9 ethernet ens192
lo 657c6fd0-5f95-4c6f-b845-975832150cfa loopback lo
固定、增加 IP
图形化交互式操作
- 如果
nmtui 页面什么都没有,则需要修改 /etc/NetworkManager/NetworkManager.conf 配置文件,
将文件中的 managed=false 改为 managed=true,并重启 systemctl restart NetworkManager
- 完成 IP 修改后,网络会断开,之后使用新 IP 连接
- 注意配置自动连接
- 如有需要(如:
debian 系统)可以禁用网卡配置 /etc/network/interfaces 中的 allow-hotplug ens* iface ens* inet dhcp
- 如有需要,请添加 DNS,如:
114.114.114.114、223.5.5.5、223.6.6.6
nmtui
# 重启网卡
sudo systemctl restart NetworkManager
命令行操作
# CentOS 系列 增加 IP
# ens192 为连接名称(CentOS 系列 连接名称与网卡名称相同)
nmcli con mod 'ens192' +ipv4.addresses '172.16.238.11/24'
nmcli con mod 'ens192' +ipv4.addresses '172.16.238.12/24'
# Debian 系列 增加 IP
# Wired connection 1 为连接名称(CentOS 系列 连接名称与网卡名称不同)
nmcli con mod 'Wired connection 1' +ipv4.addresses '172.16.238.21/24'
nmcli con mod 'Wired connection 1' +ipv4.addresses '172.16.238.22/24'
# CentOS 系列 修改 IP
# ens192 为连接名称(CentOS 系列 连接名称与网卡名称相同)
nmcli con mod 'ens192' ipv4.addresses '172.16.238.11/24'
nmcli con mod 'ens192' ipv4.gateway '172.16.238.1'
nmcli con mod 'ens192' ipv4.dns '223.5.5.5 223.6.6.6 114.114.114.114'
nmcli con mod 'ens192' ipv4.method 'manual'
# Debian 系列 修改 IP
# Wired connection 1 为连接名称(CentOS 系列 连接名称与网卡名称不同)
nmcli con mod 'Wired connection 1' ipv4.addresses '172.16.238.21/24'
nmcli con mod 'Wired connection 1' ipv4.gateway '172.16.238.1'
nmcli con mod 'Wired connection 1' ipv4.dns '223.5.5.5 223.6.6.6 114.114.114.114'
nmcli con mod 'Wired connection 1' ipv4.method 'manual'
# CentOS 系列 重新连接
# ens192 为连接名称(CentOS 系列 连接名称与网卡名称相同)
nmcli con up 'ens192'
# Debian 系列 重新连接
# Wired connection 1 为连接名称
nmcli con up 'Wired connection 1'
CentOS 系列配置固定 IP
查看 IP 与 网卡
# 使用 ip 命令
ip addr
# 结果示例
# 结果已使用 ** 代替真实值
# 网卡 ens18 的 IP 为 192.168.0.89
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:24:**.**:71:de brd ff:ff:ff:ff:ff:ff
inet 192.168.0.89/24 brd 192.168.0.255 scope global dynamic noprefixroute ens18
valid_lft 83003sec preferred_lft 83003sec
inet6 fe80::be24:**.**:71de/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# 使用 ifconfig 命令
# 需要安装 net-tools
# yum -y install net-tools
ifconfig
# 结果示例
# 结果已使用 ** 代替真实值
# 网卡 ens18 的 IP 为 192.168.0.89,netmask 为 255.255.255.0
ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.89 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::be24:**.**:71de prefixlen 64 scopeid 0x20<link>
ether bc:24:**.**:71:de txqueuelen 1000 (Ethernet)
RX packets 1358662 bytes 203837937 (194.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 113041 bytes 121053286 (115.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
查看网关
# 使用 ip 命令
ip route
# 结果示例
# IP 192.168.0.89 的网关是 192.168.0.1
default via 192.168.0.1 dev ens18 proto dhcp src 192.168.0.89 metric 100
192.168.0.0/24 dev ens18 proto kernel scope link src 192.168.0.89 metric 100
# 使用 route 命令
# 需要安装 net-tools
# yum -y install net-tools
route -n
# 结果示例
# IP 192.168.0.89 的网关是 192.168.0.1
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 ens18
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens18
配置网卡的固定 IP
# 修改网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-,后缀名为网卡名
vim /etc/sysconfig/network-scripts/ifcfg-ens18
# 将 BOOTPROTO=dhcp 修改为 BOOTPROTO=static,表示使用静态 IP,不使用 dhcp
BOOTPROTO=static
# 代表网卡自动启动,ONBOOT=yes 表示开机启动,ONBOOT=no 表示开机不启动
ONBOOT=yes
# 网络连接优先级
AUTOCONNECT_PRIORITY=-999
# 设置网卡的IP地址为192.168.0.89
IPADDR=192.168.0.89
# 设置子网掩码的前缀长度为24位
PREFIX=24
# 设置子网掩码为255.255.255.0
NETMASK=255.255.255.0
# 设置网络地址为192.168.0.0
NETWORK=192.168.0.0
# 设置默认网关为192.168.0.1
GATEWAY=192.168.0.1
# 重启网卡后,会清空 /etc/resolv.conf 中的 DNS,并根据网卡配置重新创建(或根据当前网络情况选择),所以要在网卡中配置 DNS
# 阿里云 DNS
DNS1=223.5.5.5
# 阿里云 备用 DNS
DNS2=223.6.6.6
# 114 DNS
DNS3=114.114.114.114
# 谷歌 DNS
DNS4=8.8.8.8
# 重启网卡
systemctl restart network
# systemctl restart networking
# systemctl restart network-online.target
# systemctl restart NetworkManager
临时增加IP
# yum 安装 net-tools,让 系统 支持 ifconfig 命令
# yum -y install net-tools
# 查看网卡与IP
# 假如:网卡名是 ens33,IP 为 192.168.80.14
ip addr
# 在网卡 ens33 基础上,增加一个IP 为 192.168.80.140,重启后失效
ifconfig ens33:1 192.168.80.140
# 再次查看IP,即可看到网卡 ens33 有两个IP了
ip addr
永久增加IP
- 温馨提示,如果是虚拟机,请使用多个网卡,并且网卡中要存在net连接与桥接,否则可能无法联网
# 查看网卡名
ip addr
# 假设网卡名为 ens33,则该网卡的配置文件为 /etc/sysconfig/network-scripts/ifcfg-ens33
# 复制网卡 ens33 的配置文件为 ens33:0
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:0
# 修改网卡 ens33:0 的配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
# ens33:0 的配置 修改内容如下
BOOTPROTO=static
NAME=ens33:0
DEVICE=ens33:0
IPADDR=192.168.80.140
PREFIX=24
NETMASK=255.255.255.255
NETWORK=192.168.80.0
GATEWAY=192.168.80.2
# 修改网卡 ens33 的配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# ens33 的配置 修改内容如下
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
IPADDR=192.168.80.14
PREFIX=24
NETMASK=255.255.255.255
NETWORK=192.168.80.0
GATEWAY=192.168.80.2
# 重启网卡使配置生效
systemctl restart network
# systemctl restart networking
# systemctl restart network-online.target
# 查看ip,即可在网卡ens33中看到两个ip了
ip addr
Debian 系列配置固定 IP
查看 IP 与 网卡
# 使用 ip 命令
ip addr
# 结果示例
# 结果已使用 ** 代替真实值
# 网卡 ens160 的 IP 为 172.16.238.130
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:63:c2:94 brd ff:ff:ff:ff:ff:ff
altname enp2s0
inet 172.16.238.130/24 brd 172.16.238.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe63:c294/64 scope link
valid_lft forever preferred_lft forever
# 使用 ifconfig 命令
# 需要安装 net-tools
# apt update && apt-get -y install net-tools
ifconfig
# 结果示例
# 结果已使用 ** 代替真实值
# 网卡 ens160 的 IP 为 172.16.238.130,netmask 为 255.255.255.0
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.238.130 netmask 255.255.255.0 broadcast 172.16.238.255
inet6 fe80::20c:29ff:fe63:c294 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:63:c2:94 txqueuelen 1000 (Ethernet)
RX packets 13461 bytes 2129976 (2.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14450 bytes 2687540 (2.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 45 memory 0x3fe00000-3fe20000
查看网关
# 使用 ip 命令
ip route
# 结果示例
# IP 172.16.238.130 的网关是 172.16.238.1
default via 172.16.238.1 dev ens160 onlink
172.16.238.0/24 dev ens160 proto kernel scope link src 172.16.238.130
# 使用 route 命令
# 需要安装 net-tools
# apt update && apt-get -y install net-tools
route -n
# 结果示例
# IP 172.16.238.130 的网关是 172.16.238.1
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.238.1 0.0.0.0 UG 0 0 0 ens160
172.16.238.0 0.0.0.0 255.255.255.0 U 0 0 0 ens160
配置网卡的固定 IP
# 修改网卡配置文件 vim /etc/network/interfaces
vim /etc/network/interfaces
# 单网卡
# 允许热插拔
# 自动连接
# 网卡名称:ens160,静态 IP
# IP 地址:172.16.238.130
# 掩码:255.255.255.0
# 网关:172.16.238.1
allow-hotplug ens160
auto ens160
iface ens160 inet static
address 172.16.238.130/24
netmask 255.255.255.0
gateway 172.16.238.1
dns-nameservers 114.114.114.114
# 允许 IPv6
# iface ens18 inet6 auto
# 多网卡
auto lo
iface lo inet loopback
iface enp5s0 inet manual
iface enp4s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 172.25.25.5/24
gateway 172.25.25.1
bridge-ports enp5s0
bridge-stp off
bridge-fd 0
auto vmbr1
iface vmbr1 inet static
address 172.25.25.6/24
bridge-ports enp4s0
bridge-stp off
bridge-fd 0
# 重启后生效
systemctl restart networking.service