VM搭建Linux服务器局域网
最近在了解一些 LAN 相关的内容,抱着学习的心态就使用了 VM 安装 Linux 虚拟机进行组建 LAN(局域网)的测试。
一、虚拟机网络规划
下面是我安装的虚拟机网络配置
虚拟机编号 | IP 地址 | 子网掩码 | 网络连接 |
1 | 192.168.164.100 | 255.255.255.0 | NAT(ens33) |
10.0.0.1 | 255.255.255.0 | LAN(10.0.0.0/24) (ens36) | |
2 | 10.0.0.2 | 255.255.255.0 | LAN(10.0.0.0/24) (ens33) |
第一台虚拟机安装了两张网卡,一个用于局域网、一个用于访问外网
第二台虚拟机安装了一张网卡,用于局域网
为了让虚拟机 1 和虚拟机 2 在局域网中能够互通,需要使用相同的 LAN 区段
二、虚拟机 1 配置
1、网卡配置
LAN 区段需要自定义,我这里使用的是网段/子网掩码的方式进行命名的(就是起个名称)。
2、网络配置
虚拟机启动后,使用 ip a 查看虚拟机网卡和 ip 地址,使用 NAT 网络连接的网卡是有 IP 地址的,使用 LAN 网络连接的网卡是没有 IP 地址的(或者从 VM 中找到网卡的 mac 地址进行区分)。
(1)配置 NAT 网络连接的网卡
使用 ip route 查找 NAT 网卡的网关(192.168.164.2):
default via 192.168.164.2 dev ens33 proto dhcp metric 100
编辑网卡配置:
default via 192.168.164.2 dev ens33 proto dhcp metric 100
修改以下配置:
BOOTPROTO=static # 静态 IP、默认是 dhcp ONBOOT=yes # 开机启动 IPADDR=192.168.164.100 # IP 地址 DNS=255.255.255.0 # 子网掩码 GATEWAY=192.168.164.2 #网关
配置完成后重启网络:
systemctl restart network.service # 重启网卡后才能生效
(2)配置 LAN 的网卡
编辑网卡配置:
vi /etc/sysconfig/network-scripts/ifcfg-ens36
修改以下配置:
BOOTPROTO=static # 静态 IP、默认是 dhcp ONBOOT=yes # 开机启动 IPADDR=10.0.0.1 # IP 地址 DNS=255.255.255.0 # 子网掩码
配置完成后重启网络:
systemctl restart network.service # 重启网卡后才能生效
三、虚拟机 2 配置
1、网卡配置
2、网络配置
虚拟机启动后,使用 ip a 查看虚拟机网卡和 ip 地址,由于这台机器只有一张网卡,我们直接进行配置。
编辑网卡配置:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改以下配置:
BOOTPROTO=static # 静态 IP、默认是 dhcp ONBOOT=yes # 开机启动 IPADDR=10.0.0.2 # IP 地址 DNS=255.255.255.0 # 子网掩码
配置完成后重启网络:
systemctl restart network.service # 重启网卡后才能生效
四、测试网络情况
1、LAN(局域网)
在虚拟机 1 上 ping 虚拟机 2:
在虚拟机 2 上 ping 虚拟机 1:
说明局域网内网络是正常的。
2、访问外网
虚拟机 1:
虚拟机 2:
测试发现虚拟机 1 能够访问外网,因为虚拟机 1 是双网卡,可以使用 NAT 网络连接的网卡访问外网;而虚拟机 2 因为只有一个 LAN 网卡,所以没办法访问外网。
如何才能让处于 LAN 网段的虚拟机 2 也能访问到外网呢?需要以下两步:
(1)在虚拟机 2 的网卡中配置网关
设置成虚拟机 1 的 IP 地址,把虚拟机 1 作为虚拟机 2 的网关
编辑网卡配置:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改以下配置:
GATEWAY=10.0.0.1
配置完成后重启网络
(2)在虚拟机 1 中配置网络转发
在虚拟机 1 中执行命令
1、启动 IP 转发
vi /etc/sysctl.d/ip_forward.conf
修改以下配置:
net.ipv4.ip_forward=1
执行命令生效:
sysctl -p # 使配置生效 systemctl restart network.service # 重启网卡后才能生效
2、配置 IP 伪装
对内网地址进行 IP 伪装:
firewall-cmd --zone=public --permanent --add-rich-rule="rule family="ipv4" source address=10.0.0.0/24 masquerade" # 重新加载 firewall-cmd --reload
--premanent
用于永久生效,否则重启firewalld
后规则会消失
以上就是关于 VM 搭建 Linux 服务器局域网的实现步骤,具有一定参考价值,希望对大家有帮助。