使用vmware的NAT模式的时候,如果想让局域网内的其他主机能访问你的虚拟机端口,需要做两个操作

  • 在vmware的虚拟网络编辑器中,开启宿主机端口到虚拟机端口的端口映射,这部分在安装虚拟机的教程里面有,本文不赘述;
  • 在windows的防火墙里面,设置端口的出站和入站规则。注意,不建议直接关闭防火墙;

如何确定是防火墙的问题?如果你在另外一台主机上,能ping通当前主机,但是没有办法访问你映射到宿主机的端口时,那就是被windows的防火墙拦住了。

ssh: connect to host 192.168.0.115 port 22: Connection timed out

顺带一提,你可以在windows下用ipconfig命令查看当前主机的IP地址,在Linux系统中是使用ifconfig命令查看IP地址。

进入windows11的设置搜索防火墙,打开防火墙与网络防护。

【win】windows开启特定端口防火墙_网络类型

一些教程会让你直接在这个页面关掉防火墙,不建议哦,我们只需要开启要用的端口就行了,关掉防火墙那就是100%裸奔了。不过家庭局域网一般也没有那么容易被入侵,问题也不算很大。但还是不建议完全关闭防火墙。

直接点高级设置

【win】windows开启特定端口防火墙_windows_02

在控制面板中有入站和出战规则,我们两个规则都需要添加一下,这里以入站规则为例(设置界面一模一样),点击入站规则,点击新建规则

【win】windows开启特定端口防火墙_windows_03

选择按端口号新建规则,协议按你需要的选,比如我需要SSH,选择TCP,设置为22
端口。

【win】windows开启特定端口防火墙_网络类型_04

【win】windows开启特定端口防火墙_windows_05

选择允许连接

【win】windows开启特定端口防火墙_NAT_06

这里会有网络类型,全勾上,因为windows下的网络类型就是一个薛定谔,哪怕是家庭局域网他可能也会认为是公用网络。

【win】windows开启特定端口防火墙_IP_07

然后写个名称,点击确定就可以了。这样就配置好了。然后你还需要用相同的方式配置出站规则

配置好了之后,在另外一台电脑上用这个windows主机的ip来ssh试试,能登录上就是OK了。