使用VM搭建Linux服务器局域网

最近在了解一些LAN相关的内容,抱着学习的心态就使用了VM安装Linux虚拟机进行组建LAN(局域网)的测试。

一、虚拟机网络规划

下面是我安装的虚拟机网络配置

|-------|-----------------|---------------|--------------------------|
| 虚拟机编号 | IP地址 | 子网掩码 | 网络连接 |
| 1 | 192.168.164.100 | 255.255.255.0 | NAT(ens33) |
| 1 | 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)

bash 复制代码
default via 192.168.164.2 dev ens33 proto dhcp metric 100

编辑网卡配置

bash 复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下配置

bash 复制代码
BOOTPROTO=static # 静态IP、默认是dhcp
ONBOOT=yes # 开机启动
IPADDR=192.168.164.100 # IP地址
DNS=255.255.255.0 # 子网掩码
GATEWAY=192.168.164.2 #网关

配置完成后重启网络

bash 复制代码
systemctl restart network.service # 重启网卡后才能生效

(2)配置LAN的网卡

编辑网卡配置

bash 复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens36

修改以下配置

bash 复制代码
BOOTPROTO=static # 静态IP、默认是dhcp
ONBOOT=yes # 开机启动
IPADDR=10.0.0.1 # IP地址
DNS=255.255.255.0 # 子网掩码

配置完成后重启网络

bash 复制代码
systemctl restart network.service # 重启网卡后才能生效

三、虚拟机2配置

1、网卡配置

2、网络配置

虚拟机启动后,使用ip a查看虚拟机网卡和ip地址,由于这台机器只有一张网卡,我们直接进行配置

编辑网卡配置

bash 复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下配置

bash 复制代码
BOOTPROTO=static # 静态IP、默认是dhcp
ONBOOT=yes # 开机启动
IPADDR=10.0.0.2 # IP地址
DNS=255.255.255.0 # 子网掩码

配置完成后重启网络

bash 复制代码
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的网关)

编辑网卡配置

bash 复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下配置

bash 复制代码
GATEWAY=10.0.0.1

配置完成后重启网络

(2)在虚拟机1中配置网络转发

在虚拟机1中执行命令

1、启动IP转发

bash 复制代码
vi /etc/sysctl.d/ip_forward.conf

修改以下配置

bash 复制代码
net.ipv4.ip_forward=1

执行命令生效

bash 复制代码
sysctl -p # 使配置生效
systemctl restart network.service # 重启网卡后才能生效

2、配置IP伪装

对内网地址进行IP伪装

bash 复制代码
firewall-cmd --zone=public --permanent --add-rich-rule="rule family="ipv4" source address=10.0.0.0/24 masquerade"
# 重新加载
firewall-cmd --reload

--premanent 用于永久生效,否则重启firewalld后规则会消失

相关推荐
盟接之桥1 小时前
盟接之桥说制造:在安全、确定与及时之间,构建品质、交期与反应速度的动态平衡
大数据·运维·安全·汽车·制造·devops
learning_tom2 小时前
HTML图片标签及路径详解
linux·服务器·php
dbdr09012 小时前
Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十六天
linux·运维·服务器·网络·python·学习
大白的编程日记.3 小时前
【Linux学习笔记】信号的深入理解之软件条件产生信号
linux·笔记·学习
鹧鸪云光伏与储能软件开发3 小时前
投资储能项目能赚多少钱?小程序帮你测算
运维·数据库·小程序·光伏·光伏设计软件·光伏设计
群联云防护小杜3 小时前
服务器异常磁盘写排查手册 · 已删除文件句柄篇
运维·服务器·nginx·开源·lua
buyutang_3 小时前
C/C++ Linux系统编程:线程控制详解,从线程创建到线程终止
linux·c语言·c++·学习
liliangcsdn3 小时前
结合prompt分析NodeRAG的build过程
java·服务器·人工智能·数据分析·知识图谱
云的牧人3 小时前
Ubuntu 22 redis集群搭建
linux·运维·ubuntu
siriuuus3 小时前
Linux 磁盘扩容及分区相关操作实践
linux·运维·服务器