xshell远程访问另一台电脑的ubuntu虚拟机,实现方式(关键在于虚拟机端口映射转发与win防火墙设置)

本文主要是介绍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防火墙设置)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/158596

相关文章

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu