从Ubuntu18.04版开始,尤其是20.04,Ubuntu已经切换到基于YAML的Netplan来配置网络。本文将讲解在Ubuntu 20机器上配置静态+动态IP的双网卡过程。

需求分析

如果所在机构或学校可以使用静态IP上外网,那么既可以满足防止IP变动,也可以满足正常登录到外网。但是若静态IP不能进行外网访问,而仅仅能在局域网内访问,若想上外网只能通过DHCP获取动态IP。对于这种情况,考虑到动态IP可能在某个时间会变动,为了保证能稳定访问局域网服务器,依然要采用静态IP的方式,而上外网就必须再配置一个网卡来实现。此时若你的服务器或集群有双网口,就可使用此教程,既可以使用静态IP访问到局域网服务器,又可以进行外网访问。

配置方法(全终端配置,无需图形界面)

  1. 进入网络管理目录
    cd /etc/netplan 可以看到有一个xx.yaml文件,此文件即是netplan网络配置文件。
  2. ubuntu 双网卡 负载均衡 ubuntu20双网卡配置_ubuntu 双网卡 负载均衡


  3. 双网口硬件配置
  • 静态IP网口:该口网线要连接在局域网交换机上。
  • 动态IP网口:该口网线要连在能动态获取到IP的网口,比如路由器等。
  1. 配置yaml文件
  • 查询每个网口的名称,终端输入ifconfig,如下图红框内即为网口名称:
  • ubuntu 双网卡 负载均衡 ubuntu20双网卡配置_IP_02

  • 使用root权限编辑此文档sudo vim 01-network-manager-all.yaml
  • ethernets为配置有线网
  • enp1s0f0、enp1s0f1是网口名称
  • IP地址格式为:[ip地址/子网掩码位数];
  • 特别注意这里静态IP仅用于局域网访问服务器,因此只需配置IP地址即可,网关和DNS均不必配置,而由动态IP自动获取。
network:
    ethernets:
        enp1s0f0:
            addresses: [115.24.167.xx/23]
            dhcp4: no
            dhcp6: no
        enp1s0f1:
            dhcp4: yes
            dhcp6: yes
    version: 2
    renderer: networkd
  1. 应用配置的内容sudo netplan apply
  2. 测试:使用命令ping ip(in local area network),若能ping通即静态IP配置成功。;使用命令ping www.baidu.com,若能ping通即动态IP配置成功。
  3. 使用
    配置完成后,在局域网内可以通过配置的静态IP访问到服务器,如ssh登录等。但是外网若想访问到此服务器需要另外配置,具体有两种方式:
  • 局域网内有一台配置了内网穿透的机器,通过内网穿透后使用静态IP访问服务器。
  • 若配置动态IP的网口连在路由器下,可以通过为路由器配置端口映射,访问到服务器,可参考此链接

注:

  1. 将原yaml文件中的 "renderer: NetworkManager"改为"renderer: networkd"或注释掉,否则无法生效。
  2. yaml文件要符合yaml语言的语法格式,空格(不能用tab)缩进表示层级,每一层级要左对齐,空格位数可以随意。
  3. 对应配置项后要跟冒号,之后要接个空格,否则netplan命令也会报错。