请教关于虚拟机桥接模式下的网络连接问题

2018-05-19 22:43:36 +08:00
 Baymaxbowen

最近在学习 ARM,由于需要用到 nfs,所以需要开发板、主机、虚拟机互相 ping 通

以下是三者的情形
目前是只要虚拟机桥接以太网网卡,在三个设备在同一个 IP 段的条件,三者是可以互相 ping 通的。但是这样的话由于主机用无线上网,虚拟机使用以太网网卡,所以虚拟机不能联网。请问有什么办法可以实现三者能互相通信,同时虚拟机又能上网。不要再增加其他设备。
5144 次点击
所在节点    Linux
25 条回复
Baymaxbowen
2018-05-19 22:59:44 +08:00
自顶一波,别沉啊
DearTanker
2018-05-19 23:02:02 +08:00
你意思是说,主机用 WIFI 上网,虚拟机桥接为网线上网,然后虚拟机上不了网?

第一个反应是,不可能吧?????????
crazycen
2018-05-19 23:02:27 +08:00
win10 装代理软件!虚拟机和开发板通过代理上网!
Baymaxbowen
2018-05-19 23:07:31 +08:00
@DearTanker #2 emmm 目前的情形就是这样的,能详细说一下吗
sfqtsh
2018-05-19 23:24:30 +08:00
VMware, 编辑 - 虚拟网络编辑器 - 选择 VMnet0 桥接模式, [桥接到] 不要选择自动,而是选择你那无线网卡。
defunct9
2018-05-20 00:16:56 +08:00
桥接 wifi 就可以了
defunct9
2018-05-20 00:18:07 +08:00
另外,为啥不把主机装成 ubuntu,然后 vmware 虚拟个 win10 出来呢
Baymaxbowen
2018-05-20 00:20:22 +08:00
@sfqtsh #5 不不,这样的话开发板就 ping 不通虚拟机了,因为两个用不同的网卡工作
zro
2018-05-20 00:45:01 +08:00
以太网网卡和无线网卡桥接?
Shintaku
2018-05-20 01:08:46 +08:00
@defunct9 #7 那 Win10 就没用了吧,还虚拟啥
iwtbauh
2018-05-20 02:25:49 +08:00
我认为你应该桥接虚拟网卡与以太网卡,然后通过 NAT 使虚拟机连接网络

宿主机建议使用 GNU/Linux

宿主机中
sudo tunctl -t tap0 -u 用户名
sudo brctl addbr br0
sudo brctl addif br0 eth0
sudo brctl addif br0 tap0
sudo ifconfig eth0 0.0.0.0 up
sudo ifconfig tap0 0.0.0.0 up
sudo ifconfig br0 192.168.1.100 up

虚拟机
启动时要这样设置网络:qemu-system-x86_64 .... -net tap,ifname=tap0,script=no,downscript=no ....

然后虚拟机中
sudo ifconfig eth0 192.168.1.101 up

这样虚拟机和开发板和宿主机应该就能两两互通了

要使虚拟机访问外网,则设置 NAT,把流量从 wlan0 转发出去应该就 OK 了
sudo sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

如果你非要宿主机是 Windows,那么你需要找到上述过程的 windows 设置方法,其实我担心根本不存在有效方法(除非自己开发 Windows 驱动程序)
iwtbauh
2018-05-20 02:31:40 +08:00
@iwtbauh #11

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
改为
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -o wlan0 -j MASQUERADE
iwtbauh
2018-05-20 02:34:37 +08:00
另外不管你怎么配置,NAT 是必不可少的,因为通常情况下不能桥接 wlan0 和 eth0

除非你启用 WDS 模式
iw dev wlan0 set 4addr on

但这样可能就不符合你的基本要求了
XiaoxiaoPu
2018-05-20 03:19:41 +08:00
虚拟机可以给两个网卡啊,一个 NAT 走主机 wifi 上外网,一个桥接到主机以太网卡
bin456789
2018-05-20 03:32:58 +08:00
印象中可以这样
win10 右键无线网卡,属性,共享给有线网卡
虚拟键 桥接到有线网卡上
bin456789
2018-05-20 03:33:55 +08:00
打错字:虚拟键 -> 虚拟机
bin456789
2018-05-20 03:36:51 +08:00
win10 有线网卡的 ip 自动变成 192.168.137.1
虚拟机自动获得 ip 192.168.137.x
Baymaxbowen
2018-05-20 10:06:00 +08:00
@iwtbauh 经常要用到 windows 下的软件所以宿主机只能是 Windows 了,感谢您热情的回复🙉🙉🙉🙉🙉
Baymaxbowen
2018-05-20 10:06:49 +08:00
@bin456789 等会去试一下能不能实现🙉
realpg
2018-05-20 10:14:18 +08:00
windows 用 ctrl 同时选中两块网卡 右键,桥接
然后把虚拟机的共享目标设定为网桥

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/456207

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX