两台机器必须位于同一网段且不需要设置网关

Note:在同一个内网(局域网),如果网很小,一般都是一个相同网段,相互之间访问是不需要设网关,但是数据要与其他不同网段设备交互的时候就需要设置一个网关了。

同一网段快速判断的方法

例如:
ip地址: 192.168.43.xx 

子网掩码: 255.255.255.0

我们就看ip地址的后两位不同,其他的相同,而且子网掩码一样的就是在同一网段。

局域网内两台物理机ip配置

我们先定义Ubantu服务器为A机器,搭载虚拟机ubantu的windows10宿主机为B,接下来是配置流程

1. 将AB通过交换机连接,并在相同网段

首先将两者通过交换机连接,并且利用Vlan将二者放置在同一网段(交换机上设置)

A设置:A的接口为eno2

 B设置:

参考(70条消息) 两台电脑通过网线直连共享数据(超详细)_咆哮的蘑菇的博客-CSDN博客_网线直连两台电脑怎么共享文件

我们将B的ip设置为192.168.12.15;掩码和A相同,不设置网关

 互ping测试:

BpingA

 ApingB

2. 虚拟机与宿主机B配置在同一网段

(70条消息) 配置VMware令主机与虚拟机位于局域网同一网段_Qrpucp的博客-CSDN博客_虚拟机与虚拟机在同一局域网

(70条消息) 虚拟机桥接模式设置IP_强_子的博客-CSDN博客_虚拟机桥接模式怎么设置ip

(70条消息) VMware虚拟机配置Ubuntu桥接方式(!!!很简便!!!)_WindVChen的博客-CSDN博客_vmware ubuntu桥接模式

第一步:VMware的设置

首先要明白虚拟机提供的不通网络模式VMware虚拟机Bridged(桥接模式) - happy_codes - 博客园 (cnblogs.com)

什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。其网络结构如下图所示:

桥接模式下的设置比较简单,只需在虚拟机设置的网络适配器选项中将网络模式改成桥接模式即可,同时要复制物理网络连接状态(一定要复制网络地址!不然该项目就会存在bug)

在这里插入图片描述

 我们首先查看本机的主机ip、子网掩码、默认网关,及网卡,cmd窗口中输入ipconfig /all

然后打开编辑->虚拟网络编辑器,选择下边的“更改设置”按钮,选择桥接到你主机的同名网卡(上一步有如何查询)

 自此,VM的配置就到此,接下来就是进入ubantu配置其静态ip了

第二步:Ubuntu的设置

在没有配置ubantu的ip地址前,由于虚拟机与宿主机没有在同一网段,因此网络是不通的,启动虚拟机之后页面也弹出了网络不通的信息。

接下来我们就使用可视化界面来配置网络

 ip:与宿主机在同一网段 192.168.12.19

子网掩码:与宿主机相同 255.255.255.0

网关:可以不设置,因为在同一网段下。参考VMware虚拟机Bridged(桥接模式) - happy_codes - 博客园 (cnblogs.com)

VMware设置桥接模式(使虚拟机拥有独立IP访问外网) - 布鲁布鲁sky - 博客园 (cnblogs.com)

如下图所示,右上角网络图标也显示的已连接 

再打开虚拟机,通过快捷键Ctrl+Alt+T打开终端,输入hostname -I命令来验证获得的虚拟机IP地址,如下图所示:

虚拟机、宿主机互ping验证

自此,ip配置全部完毕

虚拟机b访问服务器A中的网桥demo-oai

由于我们使用的是桥接模式,那么他们能够访问对方的关键就是设置路由(不能直接访问到,需要设置路由转发),其实最简单的方法可以直接使用虚拟机的IP进行访问

关闭b和A中的防火墙

sudo ufw disable

在A侧的docker-compose-host机器配置数据包转发,则可以使用以下命令(重要步骤)完成:

(docker-compose-host)$ sudo sysctl net.ipv4.conf.all.forwarding=1
(docker-compose-host)$ sudo iptables -P FORWARD ACCEPT

在b侧需要配置路由才能到达docker-compose-host,假设与 NIC1 连接的物理接口是 NIC1,并且此接口的 IP 地址IP_ADDR_NIC1,那么配置方法如下

(dsTest-host)$ sudo ip route add 192.168.70.128/26 \
                       via IP_ADDR_NIC1\
                       dev NIC1_NAME

但是这里存在一个问题,由于我们使用的是虚拟机,因此我们接口的ip应该就i是虚拟机的ip(192.168.12.19),同时我们的物理接口应该是虚拟机的虚拟网口ens33(也就是ip地址对应的那个口),要验证虚拟机是否连接到demo-oai的桥接器的接口的IP地址192.168.70.129我们只需要ping以下它即可:

可以发现我们添加了路由之后,虚拟机侧的网关默认为它自身的ip。

芜湖,自此全部工作结束

拓展:网桥模式配置两个虚拟网卡

一个就是上面配置成的局域网192.168.12.19;另外一个我想配置一个能够连接路由器的网络

1、点开网络连接,打开edit connections,选择新建一个网络连接,网络类型选择Ethernet;
2、不改动任何属性配置,点击save保存即可。

这样我们在网桥模式下与路由器直接连接,只需要选择internet这个网络设置即可连接外网。 

点击阅读全文
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐