在上一篇文章中我们通过 VMware Player 和 Ubuntu Server 完成了服务器的安装,但距离远程服务器搭建完成还有一段路程要走。在这篇文章中我们将开始进行服务器的网络配置,为服务器通过网络给用户提供服务打下基础!
网络结构
在开始配置网络前,我们先分析一下 VMware Player 提供的默认 NAT 网络的结构
- 虚拟机:我们创建的服务器
- DHCP 服务器:为虚拟网络内的计算机动态提供 IP 地址等连接网络所需信息
- NAT 设备:当位于虚拟网络内部的虚拟机需要访问外部网络时,会将请求发送给 NAT 设备;NAT 设备收到请求后,会将请求中虚拟机的 IP 地址转换为宿主机的 IP 地址;由于宿主机的 IP 地址于外部网络可见,从而实现虚拟网络内部虚拟机对外部网络的访问
从默认 NAT 网络的结构可以知道,我们的服务器在虚拟网络中的通信是基于 DHCP 服务器分配的动态 IP,访问外部网络则是将请求发送给 NAT 设备。
但服务器提供服务的前提是用户能在一个固定的地方找到服务器,显然动态变化的 IP 地址是不能满足要求的。所以我们需要将服务器在虚拟网络中的 IP 地址固定,实现客户对服务器的稳定访问。
固定 IP 地址
Ubuntu Server 的网络配置文件位于 /etc/netplan
下,以 .yaml
为后缀,常用网络配置模板可以在 netplan 找到
network:
version: 2
renderer: networkd
ethernets:
<网卡名称>:
addresses:
- <静态 IP>
nameservers:
addresses: [<DNS 服务器 IP>]
routes:
- to: 0.0.0.0/0
via: <路由器 IP>
复制代码
但有些麻烦的是,VMware Player 没有开放对虚拟网络进行自定义的功能(该功能在付费的 VMware Workstation Pro 上开放),所以我们需要查询默认 NAT 虚拟网络中使用的相关网络信息,并依据这些信息填充配置文件。
-
查询服务器网卡名称和当前 IP 地址:
ip address
- 网卡名称:
ens32
- 服务器 IP 地址:
192.168.70.128/24
(因为虚拟网络的规模很小,我们只配置 IPv4)
- 网卡名称:
-
查询 NAT 设备信息:
ip router
- NAT 设备 IP 地址:
192.168.70.2
- NAT 设备 IP 地址:
-
填写网卡配置文件:
sudo vim /etc/netplan/*.yaml
(这里我使用的是 vim,大家也可以使用 nano 等其它编辑器)network: version: 2 renderer: networkd ethernets: ens32: addresses: - 192.168.70.128/24 nameservers: # 阿里公共 DNS addresses: [223.5.5.5, 223.6.6.6] routes: - to: 0.0.0.0/0 via: 192.168.70.2 复制代码
注意该配置文件对缩进的要求非常高,大家在填写的时候一定要仔细
-
测试网络配置文件中是否存在错误:
sudo netplan try
(若不存在错误则会提示是否应用配置文件) -
查看配置是否生效(因为大部分网络信息都是保持原状,我们通过查看 DNS 信息来判断):
systemd-resolve --status
-
为了保险起见,我将服务器重启后再测试网络情况
-
IP 地址:
-
DNS 服务器:
-
访问外部网络:
-
主机访问:
-
总结
在本篇文章中,我们从分析网络结构开始,一步步地成功将服务器在虚拟网络中的 IP 地址固定!现在位于虚拟网络中的任何用户都可以通过 192.168.70.128
这个 IP 地址对我们的服务器进行访问。但在服务器为用户提供服务之前,我们先得配置好我们开发者需要的服务。
在下一篇文章中,我们将通过 SSH 实现本地机器对服务器的远程登录访问,就像实际开发中访问服务器一样!