想要 ssh 到 VMware 虚拟机里,虚拟机设置为桥接或 NAT,有区别吗

2023-09-23 10:50:07 +08:00
 amiwrong123

主要目的是 ssh 到 Ubuntu16 虚拟机,练习 Linux 环境下的 C 语言编程,以及练习下 Linux 环境下的命令使用(用 vscode 的远程功能,结合 MobaXterm )。本机环境是 win10 环境。

PS:各位大佬,这个问题可能比较蠢。虽然我感觉桥接和 NAT ,对于我这个目的来说,应该没有本质区别。

4048 次点击
所在节点    程序员
50 条回复
amiwrong123
2023-09-23 20:19:58 +08:00
@sinotw #26
虚拟机和宿主机总是在一个子网里,如果从宿主机 ssh 虚拟机,那肯定是没问题的
----
是的,我现在才理解这个道理。因为我的这个宿主机是有这个 虚拟网卡 vmnet8 的。

而其他的主机是没有这个虚拟网卡 vmnet8 ,其他的主机只能访问到我的宿主机。所以才需要端口转发,让其他的主机访问我的宿主机的某个端口,再转发到我的宿主机能访问到的虚拟机上面去。

不知道上面的理解,正不正确。
amiwrong123
2023-09-23 20:57:42 +08:00
@cjpjxjx #13
看了你这篇文章,我大概懂了。

在 NAT 模式下,那个 vmnet8 网卡,只是用来 host 与 guest 之间通信的。虚拟机上网时,根本就没走 vmnet8 网卡,而且通过虚拟 NAT 设备,去上的网。

我现在想理解一下,桥接模式下,那个 vmnet0 网卡,是不是也应该这么理解呀?只是用来 host 与 guest 之间通信的。

https://zhuanlan.zhihu.com/p/568564392
这篇文章却说:VMware0 没啥用,桥接可以上网的物理网卡,虚拟机就可以直接上网。而 VMnet0 是为物理机创建的虚拟桥接网卡,桥接 VMnet0 ,只能实现 VMnet0 虚拟网络内互通,无法访问外网,效果跟主机模式是一样的。
churchmice
2023-09-23 23:15:38 +08:00
我已经能预见到结局了
折腾两天把这些有的没的搞完了然后也不想学了
yeqizhang
2023-09-23 23:25:33 +08:00
@amiwrong123 没有虚拟网卡 vmnet0 。 是 vmnet0 交换机....
openbsd
2023-09-24 09:37:35 +08:00
@amiwrong123 #11
你用的应该是 Workstation
宿主机自身 ssh NAT 的虚拟机不需要端口映射的
openbsd
2023-09-24 09:39:16 +08:00
@amiwrong123 #16
第二个笔记本连接前 理论上应该还需要配置宿主机器的防火墙
Hopetree
2023-09-24 12:14:28 +08:00
@amiwrong123 是的,静态 IP 就是固定 IP ,很重要
qbqbqbqb
2023-09-24 18:00:48 +08:00
@yolee599 事实上 QEMU 真正实用方案里都不用 SLIRP 做 NAT 联网(用户态实现,性能太差),比如 libvirt ,用这个工具配置 NAT 网络用的是虚拟网卡(一般都是 bridge vnet 模式,实际上就是一个不添加物理接口的网桥;并不是那个真正的虚拟网卡 tun/tap )+ iptables NAT 的实现。也就是说 Linux 里,虚拟机的“桥接”和“NAT”都可以是内核实现。

而且不同虚拟化软件的差别也并非“Windows 和 Linux”的差别,主要还是看具体的虚拟化实现方案。
比如说 Linux 的 QEMU ,本体主要是个硬件模拟器,用它来实现全系统虚拟机的功能,自然有一些功能(比如刚才提到的网络;另外还有硬件加速 KVM 等)需要依赖于内核的实现;同时为了方便非 root 、无权限用户,又添加了像 SLIRP 这样的简易的用户态网络实现。
而 Windows 上的 VMWare 软件,本身就是自成一体的虚拟化方案,里面的虚拟网络功能都是自有的实现,不依赖 Windows 本身的桥接、NAT ( Windows 本身也内置 NAT ,比如 ICS 网络共享)等功能。
如果 Windows 上换成 Hyper-V ,情况又不一样。
qbqbqbqb
2023-09-24 18:17:03 +08:00
@qbqbqbqb 更正:上述表述有一些错误。linux qemu 实用的 NAT 网络宿主端为 tap 虚拟接口+网桥+iptables NAT 的形式(之前表述中“不使用 tap”有错)。
WingXi
2023-09-25 15:37:35 +08:00
@amiwrong123 我说到的是原理上肯定是需要的。

因为你并没有在你的帖子里面说你具体在什么系统下面用的哪个虚拟机的产品。

可能有一些虚拟机默认已经帮你配制了对应的转发端口,所以你用起来就会觉得是直接可以用。

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

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

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

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

© 2021 V2EX