Network Linux 网络配置

使用 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

图形化交互式操作

  1. 如果 nmtui 页面什么都没有,则需要修改 /etc/NetworkManager/NetworkManager.conf 配置文件,
    将文件中的 managed=false 改为 managed=true,并重启 systemctl restart NetworkManager
  2. 完成 IP 修改后,网络会断开,之后使用新 IP 连接
  3. 注意配置自动连接
  4. 如有需要(如:debian 系统)可以禁用网卡配置 /etc/network/interfaces 中的 allow-hotplug ens* iface ens* inet dhcp
  5. 如有需要,请添加 DNS,如:114.114.114.114223.5.5.5223.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