本文主要是介绍xshell远程访问另一台电脑的ubuntu虚拟机,实现方式(关键在于虚拟机端口映射转发与win防火墙设置),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题自述:
我有两台win系统的电脑,命名为访问机和宿主机(用于安装ubuntu虚拟机),两台电脑都可以正常上网。目的是要使用访问机的xshell直接连接宿主机的ubuntu虚拟机。
下面是步骤
1,首先你要有两台win系统的电脑,其中一台(宿主机)上已安装了vmware,并通过vmware安装了ubuntu虚拟机(安装方法网上随便搜都有)
2.进入ubuntu虚拟机,安装ssh:引用自(如何在ubuntu上安装ssh服务)
在Ubuntu上启用SSH
默认情况下,当你安装完Ubuntu系统后,系统是不允许通过SSH进行远程访问的,您需要安装OpenSSH并启用它。安装方法很简单,你需要以root或者具备sudo权限的帐号按以下步骤安装并启用SSH。
打开终端安装openssh-server软件包:
bash sudo apt updatesudo apt install openssh-server
出现提示时,输入密码,然后按Enter继续安装。 安装完成后,SSH服务默认自动启动,你可以通过以下命令校验服务运行状态:
bash sudo systemctl status ssh
命令执行后,输出内容类似如下:
output ● ssh.service - OpenBSD Secure Shell server Loaded: loaded
(/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-06-09 12:34:00 CEST; 9h ago
…按q退出返回命令行提示符。
Ubuntu 默认使用 ufw 防火墙配置工具,如果你启用了防火墙,请确保防火墙打开了 SSH 端口,命令如下:
bash sudo ufw allow ssh
至此,你可以通过SSH远程连接到你的Ubuntu系统了。Linux 和 macOS 系统默认安装了 SSH 客户端。
要从Windows计算机连接,请使用SSH客户端,例如PuTTY。
3.查看ubuntu的IP地址
打开ubuntu终端,输入ifconfig查看虚拟机的IP地址:
将这一串192.168.xxx.xxx记为虚拟机ip
4.查看宿主机的公网ip地址
打开宿主机,也就是装有ubuntu虚拟机的windows系统的浏览器,搜索“我的ip”,点击第一个链接就是。我用的是https://ip.cn/
将这一串地址记为宿主机ip
4.设置ubuntu虚拟机的NAT网络端口映射(端口转发)
编辑虚拟机的网络
选择NAT模式,点击NAT设置
点击添加
重点来了,在这里的主机端口设定一个你喜欢的端口号,记为主机端口,建议6666或其他,这个号必须是不能被宿主机占用的(不要输入22等常用端口,很有可能已被占用)。
在虚拟机ip地址一栏输入刚刚查看到的虚拟机ip
虚拟机端口一栏填写22(这个是ubuntu内部ssh的默认端口)
5.在宿主机的防火墙添加准入端口
打开宿主机的控制面板,搜索防火墙,点击高级设置
点击入站规则-新建规则,按下面图片提示设置新的入站规则
输入你刚刚设定的主机端口
为该规则写一个合适的名称
6.使用访问机的xshell链接宿主机的虚拟机ubuntu
打开访问机的xshell,新建会话。主机那里输入宿主机ip注意不是虚拟机ip,端口号填写刚刚自己设定的主机端口
点击连接,输入ubuntu的账号密码,即可顺利连上
一些杂谈
在网上找了好久都没找到合适的方法,弄了好几天总算有了眉目,最后成功连上。关键步骤还是在设置虚拟机的端口转发和宿主机的防火墙准入。感谢这篇文章提供的方法:VMware虚拟机配置端口转发(端口映射),实现远程访问
还有,本方法的奇怪之处在于,两台电脑不能ping通(访问机ping宿主机ip失败),但能建立ssh连接。我的两台电脑是都是连的校园网拨号上网。但是如果一台连的校园网,一台连的手机热点,就不能建立ssh连接(感觉还是得在同一局域网下才可以)。如果想要通过公网访问内网的服务器,可能需要再设置一个内网穿透,详见知乎:如何从外网SSH连接内网服务器? 这个我还没实践过
最后,如果帮到了你,记得点个赞
这篇关于xshell远程访问另一台电脑的ubuntu虚拟机,实现方式(关键在于虚拟机端口映射转发与win防火墙设置)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!