本人常用的虚拟机软件是VirtualBox,由于笔记本性能,磁盘存储大下限制,以及VirtualBox客户机无法在多个设备间直接方便的使用等原因,我把几个虚拟的系统全部移动到便携式服务器中。

移动之后,默认情况下是不能直接访问到这些虚拟系统的。

最直接的方式可能就是使用桥接模式了,但是我有多个虚拟系统,虚拟机互访,笔记本与虚拟机互访IP需要变换,还有就是多个虚拟机使用相同的端口号等这些因素,桥接模式可能满足不了我的需求。

划分子网

把所有虚拟机划分成一个子网,服务器充当网关的角色,笔记本等实体机器和服务器一个子网。

由于之前的虚拟机的网段一直是192.168.56.0,所以复制上去,就用它了,其他设备连接时也不要修改配置了,所以实体机子网7856之后,也是比较记忆,也方便手打输入。

网段分配

网段分配如表所示:

子网名称 子网网段 网关
虚拟机子网 192.168.56.0/24 192.168.56.2 虚拟网关
实体机子网 192.168.78.0/24 192.168.78.2 实体子网网关

服务器网络设置

服务器有两个接口 vboxnet0eno1

$ route
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet0
192.168.78.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1

看路由,192.168.56.0网络用的虚拟接口是vboxnet0,通过它可以访问其他虚拟系统,具体怎么实现的,那都是这个虚拟网卡的事情了,这里不深究,能用就行。

实体子网配置,使用192.168.78.0

服务器配置静态IP地址

~$ cat /etc/systemd/network/78-static-eno1.network
[Match]
Name=eno1 [Network]
Address=192.168.78.2/24
Gateway=192.168.78.2

笔记本网络设置

这样两步配置后,笔记本就可以访问服务器了,一根网线直连,没有经过路由器,因为大部分时候,是没有路由器可用的,在家当然是有的,而且这样有个好处是,传输速度相当的好。

通过网关访问虚拟子网

服务器配置成网关服务器

设置允许转发

~$ cat /etc/sysctl.conf

net.ipv4.ip_forward=1

使之生效 sysctl -p

查看是否已经支持转发

~$ cat /proc/sys/net/ipv4/ip_forward

配置iptables的转发

sudo iptables -t nat -A POSTROUTING -s 192.168.78.0/24 -j MASQUERADE

或者

sudo iptables -t nat -A POSTROUTING -s 192.168.78.0/24 -o vboxnet0 -j SNAT --to-source 192.168.56.1

网络地址转换规则解释:对所有192.168.78.0网段的请求都由接口vboxnet0来处理并进行源地址转换为192.168.56.1

由于IP和接口都是固定的,所以可以使用第二种方式,说是,性能要好些。

有时候时灵时不灵的,可能时iptable规则由于某些原因没有生效、被覆盖了,用iptables save显示所有规则,自行排查。

设置笔记本路由

这时候还没有完,还差最后一步,windows10上添加路由

route add 192.168.56.0 mask 255.255.255.0 192.168.78.2

静态路由表添加

route add 192.168.56.0 mask 255.255.255.0 192.168.78.2 -p

这条路由规则,把所有到网段192.168.56.0的数据都经过网关192.168.78.2进行处理。

最后

就是这样,完成了78访问56,也不是很复杂,但是期间也是看了很长时间的iptables,搞定了,满满的成就感。

至于56访问78,我没这个必要,如果需要的话,可以自己尝试一下。

服务器中VirtualBox子网访问的更多相关文章

  1. 在Tomcat服务器中去端口访问域名

    在刚购买域名并解析后,从外网访问Tomcat服务器时是需要在域名后面加端口":8080".要去端口访问的步骤如下: 在Tomcat目录下的conf文件夹下,打开server.xml ...

  2. 没有活动事务 链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务

    在windows2003下执行分布式事务的时候出现如下情况. 一. 问题现象在执行分布式事务时,在sql server 2005下收到如下错误: 链接服务器"xxxxxxx"的 O ...

  3. 服务器中很多的CLOSE_WAIT

    服务器中很多的CLOSE_WAIT,请教各位大虾!!!!!!!!!最近遇到一个问题,工程在LINUX服务器上面跑起来了以后,运行一段时间 就有很多的CLOSE_WAIT链接,多了之后,网站就访问不了了 ...

  4. 使用vue在开发中的一些小问题--使用vue-cli起的服务器无法在局域网访问

    2.使用vue-cli起的服务器无法在局域网访问 这个很简单,在package.json文件中的js启动项配置中增加--host 0.0.0.0 注意是--host而不是-host,此时如果有--op ...

  5. ArcGIS Engine中的数据访问

    ArcGIS Engine中的数据访问 数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文 ...

  6. Lync 客户端:无法登陆到Lync,验证服务器中的证书时遇到问题

    安装完Lync客户端后,运行时Lync客户端时,报出如下错误: [原因解析] Lync客户端没有正确安装CA证书链. [解决办法] 第一种方法:将计算机加入域. 第二种方法:不加入域的处理方法: 1. ...

  7. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

    今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...

  8. FTP服务器简易有效的访问方法

    访问FTP服务器传统的方法是使用专用的客户端程序,如CuteFTP,8UFTP等,也包括命令行的FTP客户端c:\windows\system32\ftp.exe程序. FTP服务器也有简易访问方法 ...

  9. IIS6.0服务器搭建网站无法访问解决方法

    IIS6.0服务器搭建网站无法访问解决方法     IIS6.0服务器搭建网站无法访问解决方法很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的, ...

  10. delphi7开发webservice部属在apache服务器中 转

    delphi7开发webservice部属在apache服务器中 delphi7 webservice apache 用Delphi7开发Web Service程序,并把服务程序放在apache We ...

随机推荐

  1. [转]failed to recv data in handshakeReceive2Callback

    转自:http://xiaix.me/blog/27.html "failed to recv data in handshakeReceive2Callback"错误 一直用的好 ...

  2. MVC对session或cookie保存的值在js中做处理

    在cshtml中保存数据 eg: @Html.Hidden("sessionUserName", Session["userName"]) @Html.Hidd ...

  3. Java基础之变量与常量

    变量 定义:可以变化的量. Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序种最基本的存储单元,其要素包括变量名,变量类型和作用域. //数据类型 变量名 = 值:可以使用逗号 ...

  4. python中利用openpyxl、xlsxwriter库操作Excel

    删除Excel指定行或列 使用openpyxl库操作Excel,可以删除指定的列 import openpyxl def excel_delete(fp): wb = openpyxl.load_wo ...

  5. elm上传图片,只能上传一张,隐藏+上传框

    效果: 上传后,隐藏+号,禁止继续上传: 移除当前已上传的后,重新显示+号,可以继续上传: 代码: css : 隐藏上传的 + 号 变量: 注: 利用 hideUpload 控制 + 号的css   ...

  6. C++入门之unordered_map

    1.介绍   unordered_map是c++语言STL库中一个比较重要的容器,不能自动排序,这一容器是根据哈希表这一数据结构设计而成的,能够极大地提升数据搜索.插入和删除操作的时间效率. 2.头文 ...

  7. vscode python可以运行,无法debug

    参考:https://blog.csdn.net/weixin_44646187/article/details/125810974 提示'cmd' 不是内部或外部命令,也不是可运行的程序 或批处理文 ...

  8. 浏览器输入URL发生了什么:DNS解析、TCP握手、HTTP缓存、重定向、服务器状态码、渲染引擎和JS引擎互斥、渲染过程、浏览器进程、网络进程、渲染进程

    输入地址,浏览器查找域名的 IP 地址. 浏览器向 该 IP 地址的web 服务器发送一个 HTTP 请求, 在发送请求之前浏览器和服务器建立TCP的三次握手,判断是否是HTTP缓存, 如果是强制缓存 ...

  9. 修改tomcat启动时,修改默认访问的页面

  10. GPS时钟之户外防水防雷细节

    GPS时钟之户外防水防雷细节------专业LED时钟厂家![点击进入] GPS的脆弱性: 由于在GPS设计时,干扰环境下的工作能力不是优先考虑的因素,它只是作为一种导航的辅助工具,而不是用于精确制导 ...