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

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函