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

230 天前
 amiwrong123

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

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

3476 次点击
所在节点    程序员
50 条回复
kujou
230 天前
你如果在母鸡 ssh 过去,没区别。
LLaMA2
230 天前
是的。
桥接时 VM 的网络和宿主机是平级
NAT 时 VM 的网络是宿主的下级
WingXi
230 天前
桥接的话, 宿主机和虚拟机是处于同一个网段地址内

NAT 的话, 虚拟机是在另外一个子网内。 这种模式下,相互之间要实现访问,要么做 端口映射, 要么手工配置路由表(如果你的虚拟机平台支持的话)
crysislinux
230 天前
楼上说的对,nat 的话要做端口映射,桥接的话不知道 IP 稳定不,感觉还是 nat 好点
amiwrong123
230 天前
@crysislinux
不稳定是指,因为 dhcp ,每次虚拟机开机,分配到的 ip 地址,都不一样吗
tabit
230 天前
@amiwrong123 可以在虚拟机一侧配置静态 IP ,不存在 IP 变动问题。具体区别 2 楼已经说得很清楚了
amiwrong123
230 天前
@tabit #6
好的。我理解,如果开启着 DHCP 的话,不管是桥接还是 NAT ,都会有 ip 地址变化 的问题吧。
tabit
230 天前
@amiwrong123 如果虚拟机使用 DHCP 获取 IP 的话,是的
crysislinux
230 天前
@amiwrong123 同一个路由器的话基本上还是分配同一个 IP ,换了网络变的可能性就大了。nat 的话,端口映射到本机的,你就用 127.0.0.1 就好了
amiwrong123
230 天前
@crysislinux #9
嗯,笔记本一般只在家里用,网络应该不会变。我试了,就算开启了 DHCP ,多次重启虚拟机的 ip 也不会变。
amiwrong123
230 天前
@kujou #1
@ye4tar #2
@WingXi #3
@crysislinux #4
@tabit #6
@crysislinux #9
各位大佬,看一下附言的问题呗,我看大家都说,ssh 到 NAT 虚拟机的话,都需要开端口映射。为啥我的就不需要呢?
cjpjxjx
230 天前
VMware Workstation 虚拟机安装后默认就会给宿主机添加两张虚拟网卡 VMnet1 和 VMnet8 ,分别用于“仅主机模式”和“NAT 模式”,你虚拟机网卡选了“NAT 模式”,虚拟机获取的 IP 就是和主机 VMnet8 虚拟网卡的 IP 在同一个网段,当然可以直接访问,你可以在宿主机用 route print 查看到直连路由表

区别:
桥接模式虚拟机需要连接到外部路由器,获取的 IP 地址是外部路由器分配的,所以除了宿主机,其他和宿主机同网段的设备也可以直接访问到虚拟机,如果是在公司或其他特殊环境,外部路由器做了 arp 绑定或没有 dhcp ,使用这个模式就可能连不上网或获取不了 IP 地址

NAT 模式 IP 地址是宿主机分配的,你的宿主机就相当于是一个路由器,虚拟机获取的 IP 地址和宿主机本身的 IP 地址不在一个网段,和宿主机同网段的的设备就无法直接访问到虚拟机了,需要在宿主机做端口映射才可以,
cjpjxjx
230 天前
可以看一下这个:
vmware 虚拟机网络配置详解
https://blog.51cto.com/u_15169172/2710721
studyrun
230 天前
区别就是一个是桥接一个是 nat ,看似是废话
桥接的话,虚拟机网络和主机是平级,两者访问要经过路由器,好处是其他设备能直接访问虚拟机,坏处是网络速度受到路由器和网卡限制
nat 虚拟机就在主机下面了,坏处是局域网其他设备不能直接访问虚拟机,好处是主机和虚拟机之间网速不受限制,其他设备还是限制的
Cu635
230 天前
vmware 的 nat 网络,guest 和 host 是可以通信的,host 上直接 ssh 虚拟机 guest 就可以了。如果是别的电脑连接 host 中的 nat 虚拟机 guest ,这个时候需要端口转发。

virtualbox 的“nat”网络,guest 和 host 是不可以直接通信的,配置端口转发之后 ssh localhost 是一个解决方案,而 virtualbox 的类似于 vmware nat 网络的“guest 和 host 能够通信,同时又是 nat 模式”的网络设置,叫“nat network”……

可能是有人弄混了?

当然,对于 virtualbox 软件,当别的电脑连接 host 中的 nat 虚拟机 guest 的时候,也是需要端口转发的。
amiwrong123
230 天前
@Cu635
如果是别的电脑连接 host 中的 nat 虚拟机 guest ,这个时候需要端口转发。
——
原来如此,刚好家里边有第 2 个笔记本电脑,我试一下这个端口转发可不可以
amiwrong123
230 天前
@studyrun
好处是主机和虚拟机之间网速不受限制
——
就冲这一点的话,我觉得还是设置成 nat 模式比较好
yolee599
230 天前
NAT 模式相当于虚拟机生成了一个独立的内网,桥接模式相当于虚拟机弄了一个交换机把 Guest 暴露到了和 Host 同一个网络
NAT 模式 Host 想要访问 Guest 得做端口转发,桥接模式不用。
amiwrong123
230 天前
@cjpjxjx
可以在宿主机用 route print 查看到直连路由表
——
那我等会儿看一下这个命令的结果,估计能让我能更加理解这个原理。
他这个命令应该是把我,真实的无线网卡和虚拟机 vmnet8 网卡的信息都列出来了吧
yolee599
230 天前
@amiwrong123 #17 你这说法不对,NAT 模式的网络拓扑软件模拟的,性能取决于虚拟机软件的性能。而桥接是系统内核的功能,性能最好

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

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

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

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

© 2021 V2EX