从Ubuntu18.04版开始,尤其是20.04,Ubuntu已经切换到基于YAML的Netplan来配置网络。本文将讲解在Ubuntu 20机器上配置静态+动态IP的双网卡过程。
需求分析
如果所在机构或学校可以使用静态IP上外网,那么既可以满足防止IP变动,也可以满足正常登录到外网。但是若静态IP不能进行外网访问,而仅仅能在局域网内访问,若想上外网只能通过DHCP获取动态IP。对于这种情况,考虑到动态IP可能在某个时间会变动,为了保证能稳定访问局域网服务器,依然要采用静态IP的方式,而上外网就必须再配置一个网卡来实现。此时若你的服务器或集群有双网口,就可使用此教程,既可以使用静态IP访问到局域网服务器,又可以进行外网访问。
配置方法(全终端配置,无需图形界面)
- 进入网络管理目录
cd /etc/netplan
可以看到有一个xx.yaml文件,此文件即是netplan网络配置文件。 - 双网口硬件配置
- 静态IP网口:该口网线要连接在局域网交换机上。
- 动态IP网口:该口网线要连在能动态获取到IP的网口,比如路由器等。
- 配置yaml文件:
- 查询每个网口的名称,终端输入
ifconfig
,如下图红框内即为网口名称: - 使用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
- 应用配置的内容:
sudo netplan apply
。 - 测试:使用命令
ping ip(in local area network)
,若能ping通即静态IP配置成功。;使用命令ping www.baidu.com
,若能ping通即动态IP配置成功。 - 使用:
配置完成后,在局域网内可以通过配置的静态IP访问到服务器,如ssh登录等。但是外网若想访问到此服务器需要另外配置,具体有两种方式:
- 局域网内有一台配置了内网穿透的机器,通过内网穿透后使用静态IP访问服务器。
- 若配置动态IP的网口连在路由器下,可以通过为路由器配置端口映射,访问到服务器,可参考此链接
注:
- 将原yaml文件中的 "renderer: NetworkManager"改为"renderer: networkd"或注释掉,否则无法生效。
- yaml文件要符合yaml语言的语法格式,空格(不能用tab)缩进表示层级,每一层级要左对齐,空格位数可以随意。
- 对应配置项后要跟冒号,之后要接个空格,否则netplan命令也会报错。