当前位置: 首页 > news >正文

如何实现公网远程桌面访问Ubuntu?VNC+cpolar内网穿透!

文章目录

    • 前言
    • 1. ubuntu安装VNC
    • 2. 设置vnc开机启动
    • 3. windows 安装VNC viewer连接工具
    • 4. 内网穿透
      • 4.1 安装cpolar【支持使用一键脚本命令安装】
      • 4.2 创建隧道映射
      • 4.3 测试公网远程访问
    • 5. 配置固定TCP地址
      • 5.1 保留一个固定的公网TCP端口地址
      • 5.2 配置固定公网TCP端口地址
      • 5.3 测试使用固定公网地址远程
    • 总结


前言

实现ubuntu 系统桌面级别的远程连接,需要在ubuntu 系统中安装vnc,既然是桌面,前提是需要ubuntu 带有图形化界面,如果没有,可以执行以下命令安装图形化界面:

sudo apt install ubuntu-desktop sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal sudo reboot #重启即可看到图形界面

1. ubuntu安装VNC

在ubuntu中安装vnc

sudo apt-get install x11vnc

Image

安装LightDM【LightDM从设计上就是支持本地图形界面以获得最好的兼容性】

sudo apt-get install lightdm

安装过程中会出现以下选项,选择lightdm然后回车即可

在这里插入图片描述

设置密码,设置密码后,会问你是否需要将密码保存在:/home/root1/.vnc/passwd,输入y确认即可

x11vnc -storepasswd

在这里插入图片描述

2. 设置vnc开机启动

创建一个x11vnc.service文件

sudo vim /lib/systemd/system/x11vnc.service

i键进入编辑模式,添加如下信息,!!注意: <USERNAME>替换为您ubuntu用户名,添加完成后按Esc键退出编辑,然后输入冒号:wq保存

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/<USERNAME>/.vnc/passwd -rfbport 5900 -shared[Install]
WantedBy=multi-user.target

在这里插入图片描述

设置开机启动

sudo systemctl enable x11vnc.service

启动服务

sudo systemctl start x11vnc.service

3. windows 安装VNC viewer连接工具

进入vnc官网,下载windows版vnc连接工具

https://www.realvnc.com/en/connect/download/viewer/

在这里插入图片描述

下载好后打开使用局域网ip进行连接,端口是5900

在这里插入图片描述

出现密码界面,输入上面设置的密码即可

在这里插入图片描述

出现ubuntu桌面表示成功

在这里插入图片描述

4. 内网穿透

本地测试远程连接没问题后,接下来我们实现在公网环境下的远程桌面,这里我们可以使用cpolar内网穿透工具实现程访问。支持http/https/tcp协议,不限制流量,无需公网ip,也无需设置路由器。

cpolar官网:https://www.cpolar.com/

4.1 安装cpolar【支持使用一键脚本命令安装】

  • cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

或 cpolar短链接安装方式:(国外使用)

curl -sL https://git.io/cpolar | sudo bash
  • 查看版本号,有正常显示版本号即为安装成功
cpolar version
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里

cpolar authtoken xxxxxxx

20230227141344

  • 简单穿透测试,有正常生成相应的公网地址即为穿透成功
cpolar http 8080

按ctrl+c退出

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar
  • 查看服务状态
sudo systemctl status cpolar

4.2 创建隧道映射

cpolar安装成功后,在浏览器上访问本地9200端口,【127.0.0.1:9200],使用cpolar邮箱账号登录 web UI管理界面。

在这里插入图片描述

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个tcp协议的隧道指向本地5900端口:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:5900
  • 域名类型:免费选择随机域名
  • 地区:默认China top即可

点击创建

在这里插入图片描述

隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到,刚刚创建的隧道已经有生成了相应的公网地址+公网端口号,将其复制下来

在这里插入图片描述

4.3 测试公网远程访问

打开windows vnc viewer,使用刚刚所获取的公网地址+公网端口号进行连接。本例为2.tcp.vip.cpolar.cn:13001

在这里插入图片描述

输入密码

在这里插入图片描述

公网远程连接成功

在这里插入图片描述

5. 配置固定TCP地址

由于以上创建的隧道是随机地址隧道,该地址会在24小时内变化,为了使连接更加稳定,我们需要为其配置固定的TCP地址。

需要注意,配置固定TCP端口地址需要将cpolar升级到专业版套餐或以上。

5.1 保留一个固定的公网TCP端口地址

登录cpolar官网后台,点击左侧的预留,选择保留的TCP地址。

  • 地区:选择China VIP
  • 描述:即备注,可自定义填写

点击保留

在这里插入图片描述

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

在这里插入图片描述

5.2 配置固定公网TCP端口地址

在浏览器上登录cpolar web UI管理界面,http://127.0.0.1:9200/,点击左侧仪表盘的隧道管理——隧道列表,找到我们前面创建的vnc远程隧道,点击右侧的编辑

在这里插入图片描述

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写保留成功的地址

点击更新

在这里插入图片描述

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,找到vnc远程桌面隧道,可以看到公网地址已经更新成为了固定tcp地址。

在这里插入图片描述

5.3 测试使用固定公网地址远程

接下来测试使用固定TCP端口地址远程ubuntu桌面,我们再次在windows上打开VNC viewer,使用固定tcp地址连接,出现密码界面,同样输入密码

在这里插入图片描述

远程连接成功

在这里插入图片描述

总结

至此,我们成功实现了使用VNC远程桌面ubuntu:通过cpolar穿透vnc服务5900端口,使用所生成的公网地址,实现在外随时随地远程桌面控制内网的Ubuntu,不需要公网IP,也不需要配置路由器。并且,这个公网地址还是固定的,不会随机变化,连接稳定。

除了穿透vnc之外,cpolar也可以应用在其他众多场景下,比如公网ssh远程、远程群晖NAS、我的世界联机、微信公众号支付宝调试、公开一个本地web…【PS:cpolar目前还支持21天退款保证】

转载自cpolar极点云文章:使用VNC远程桌面Ubuntu【内网穿透实现公网远程】

相关文章:

如何实现公网远程桌面访问Ubuntu?VNC+cpolar内网穿透!

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…...

SpringMvc接收参数

接受参数:1.路径设置RequestMapping(value"地址",method"请求方式") 类|方法GetMapping PostMapping 方法2.接受参数[重点]param直接接收---handler(类型 形参名) 形参名请求参数名注解指定---handler(RequestParam(name"请求参…...

计算机网络文章荟萃

脑残式网络编程入门(二)&#xff1a;我们在读写Socket时&#xff0c;究竟在读写什么&#xff1f;-网络编程/专项技术区 - 即时通讯开发者社区! 1.什么是 socket - 掘金2.socket 的实现原理 - 掘金本文讲述了 socket 在 linux 操作系统下的数据结构&#xff0c;以及阻塞 IO 利用…...

C# Socket通信从入门到精通(4)——多个异步TCP客户端C#代码实现

前言: 在之前的文章C# Socket通信从入门到精通(3)——单个异步TCP客户端C#代码实现我介绍了单个异步Tcp客户端的c#代码实现,但是有的时候,我们需要连接多个服务器,并且对于每个服务器,我们都有一些比如异步连接、异步发送、异步接收的操作,那么这时候我们使用之前单个…...

GitHub为自己的仓库(Repository)设置默认代码缩进(tabsize)

无意中发现GitHub默认显示tab为8个空格的大小&#xff0c;十分不适&#xff0c;故想改成四个字节的缩进 流程 GitHub是支持EditorConfig的。所有只需在Repository根目录下(注意不是.git文件夹下)新建文件 .editorconfig vim .editorconfig内容如下 # top-most EditorConfig…...

Tomcat的动静分离

一、动态负载均衡 3、台虚拟机模拟&#xff1a; 代理服务器&#xff1a;51 tomcat动态页面&#xff1a;53,54 关闭防火墙和安全机制 配置代理服务器&#xff0c;由于做的是七层代理&#xff0c;所以要在http模块配置 配置前端页面 <!DOCTYPE html> <html> <…...

Chimera:混合的 RLWE-FHE 方案

参考文献&#xff1a; [HS14] S. Halevi and V. Shoup. Algorithms in HElib. In Advances in Cryptology–CRYPTO 2014, pages 554–571. Springer, 2014.[HS15] S. Halevi and V. Shoup. Bootstrapping for HElib. In Advances in Cryptology–EUROCRYPT 2015, pages 641–6…...

MySQL 连接出现 Authentication plugin ‘caching_sha2_password的处理方法(使用第二种)

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 1. 升级MySQL版本 较早的MySQL版本可能不…...

设置Ubuntu 20.04的静态IP地址(wifi模式下)

一、引言 自己家用的Ubuntu的&#xff0c;重启后ip地址经常会改变&#xff0c;这个时候就需要我们手动配置静态IP了。 二、优点 给Ubuntu设置一个静态IP地址有以下几个好处&#xff1a; 持久性&#xff1a;静态IP地址是固定不变的&#xff0c;与设备的MAC地址绑定。这意味着…...

Qt界面实现中英文切换

要实现的效果&#xff0c;是下拉列表切换中文和English实现按钮文本中英文内容切换。 实现步骤&#xff1a; 1.在VS中鼠标对Translation Files文件右击&#xff0c;选择“添加”--->“模块”. 在弹窗的窗口中选择“Qt”--->“Qt Translation File”。 添加Translation_e…...

Python 编写确定个位、十位以上方法及各数位的和程序

Python 编写确定数字位方法 Python 编写确定个位、十位Python 编写确定个位、十位、百位方法解析&#xff1a;Python 各数位的和程序 利用%&#xff08;取余符号&#xff09;、//&#xff08;整除&#xff09;符号。 Python 编写确定个位、十位 num 17 a num % 10 b num /…...

AI 引擎系列 1 - 从 AI 引擎工具开始(2022.1 更新)

AI 引擎系列 1 - 从 AI 引擎工具开始&#xff08;2022.1 更新&#xff09; AI 引擎系列简介 在这篇题为 Versal 自适应 SoC AI 引擎入门的文章中&#xff0c;我介绍了一些 Versal™ 自适应 SoC 器件中存在的 AI 引擎 (AIE) 阵列。本系列是全新的 AI 引擎系列博文&#xff0c;我…...

Android Kotlin 协程初探 | 京东物流技术团队

1 它是什么&#xff08;协程 和 Kotlin协程&#xff09; 1.1 协程是什么 维基百科&#xff1a;协程&#xff0c;英文Coroutine [kəru’tin] &#xff08;可入厅&#xff09;&#xff0c;是计算机程序的一类组件&#xff0c;推广了协作式多任务的子程序&#xff0c;允许执行被…...

MySQL-DQL【数据查询语言】(图码结合)

作者:chlorine 专栏:数据库_chlorine5的博客-CSDN博客 MySQL——DDL&#xff1a;DDL ——数据定义语言 MySQL——DML&#xff1a;DML——数据操作语言 目录 一.DQL的定义 二.DQL—语法 三.DQL—基础查询(SELECT.. FROM) &#x1f449;查询多个字段 &#x1f449;设置别名 …...

HTTP 响应状态码介绍

HTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。响应被归为以下五大类&#xff1a; 1xx 信息响应 (100–199) 2xx 成功响应 (200–299) 3xx 重定向消息 (300–399) 4xx 客户端错误响应 (400–499) 5xx 服务端错误响应 (500–599)1xx 信息响应 100 Continue 这个临时响应…...

vtk 绘制等高线

使用 VTK 也可以实现等高线绘制&#xff0c;在地图、气象、地质等领域中&#xff0c;经常需要将数据以多个等高线的形式进行展示。在VTK(Visualization Tookt) 中&#xff0c;有专门的AP何以支持简便地实现这一功能。 我们还可以根据算法操作的数据类型或生成的数据类型对算法…...

N-129基于springboot,vue学生宿舍管理系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vuevue-element-admin 服务端技术&#xff1a;springboot,mybatis…...

力扣每日一题70:爬楼梯

题目描述&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 …...

分布式合集

1.Spring 的事务 Spring框架为应用程序提供了强大的事务管理功能。它通过将事务逻辑与业务逻辑分离&#xff0c;使得开发者可以专注于业务逻辑的实现&#xff0c;而不必过多关注事务的管理。Spring事务的核心是基于AOP&#xff08;面向切面编程&#xff09;的声明式事务管理&a…...

MySQL比较两个表数据的差异

一、几种比较方式 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;连接两个表的相同记录&#xff0c;通过比较连接后的结果集&#xff0c;找出相同和不同的数据。外连接&#xff08;LEFT JOIN或RIGHT JOIN&#xff09;&#xff1a;连接两个表的所有记录&#xff0c;包括…...

WPF Chart控件实战:构建高性能实时数据监控曲线

1. WPF Chart控件基础入门 第一次接触WPF Chart控件时&#xff0c;我也被它强大的功能震撼到了。这个控件就像是一个神奇的画板&#xff0c;能够将枯燥的数据变成直观的曲线图。在工业监控系统中&#xff0c;我们经常需要实时显示温度、压力等参数的变化趋势&#xff0c;这时候…...

RePKG开发者指南:深入理解C逆向工程实现原理

RePKG开发者指南&#xff1a;深入理解C#逆向工程实现原理 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款强大的 Wallpaper Engine PKG文件提取与TEX图像转换工具&#…...

Java 25记录模式深度实战:手把手带你用模式匹配解构嵌套记录,效率提升47%(JVM实测数据)

第一章&#xff1a;Java 25记录模式的演进脉络与核心突破记录模式&#xff08;Record Patterns&#xff09;作为 Java 21 首次以预览特性引入、并在 Java 22 进一步增强、最终于 Java 25 正式成为标准特性的关键语言机制&#xff0c;标志着 Java 在模式匹配演进道路上完成从“解…...

MixText+BERT还能这么玩?手把手复现FPMT论文中的‘概率伪混合’黑科技

解密FPMT论文中的概率伪混合&#xff1a;BERT隐藏层的动态插值艺术 在自然语言处理领域&#xff0c;数据增强一直是提升模型泛化能力的关键技术。传统MixText方法通过线性插值在输入层混合样本&#xff0c;但这种"一刀切"的方式忽视了不同样本对模型训练的差异化价值…...

Vivado实战:从零封装自定义接口IP核的完整流程

1. 为什么需要封装自定义IP核 第一次接触FPGA开发时&#xff0c;我总喜欢把整个工程的所有代码都堆在一个项目里。直到某天需要复用之前的HDMI显示模块时&#xff0c;才发现要手动复制几十个文件&#xff0c;还得逐个修改端口连接。这种重复劳动让我意识到&#xff1a;封装IP核…...

Cadence实战:从原理图到PCB的完整导入流程解析

1. Cadence设计流程概述 刚接触Cadence的硬件工程师常会遇到一个经典问题&#xff1a;为什么原理图设计得漂漂亮亮&#xff0c;导入PCB时却总出各种幺蛾子&#xff1f;这就像做菜时备好了所有食材&#xff0c;下锅时却发现灶台点不着火。我在带新人时发现&#xff0c;90%的导入…...

UNet架构优势解析:cv_unet_image-colorization语义特征与纹理保留实测

UNet架构优势解析&#xff1a;cv_unet_image-colorization语义特征与纹理保留实测 1. 引言&#xff1a;为什么UNet是图像上色的理想选择&#xff1f; 你有没有翻过家里的老相册&#xff1f;那些泛黄的黑白照片&#xff0c;承载着珍贵的记忆&#xff0c;却总让人觉得少了点什么…...

告别盲目点优化!手把手教你用Zemax 2024构建‘先结构后像差’的高效优化工作流

告别盲目点优化&#xff01;手把手教你用Zemax 2024构建‘先结构后像差’的高效优化工作流 在光学设计领域&#xff0c;Zemax作为行业标杆工具&#xff0c;其优化功能强大却也让许多设计师陷入"不断点击优化按钮"的困境。真正高效的设计不在于反复试错&#xff0c;而…...

服装打版辅助新思路:Nano-Banana软萌拆拆屋结构化拆解应用

服装打版辅助新思路&#xff1a;Nano-Banana软萌拆拆屋结构化拆解应用 1. 引言&#xff1a;当服装设计遇见“拆解魔法” 想象一下&#xff0c;你是一位服装设计师&#xff0c;面对一件构思精巧的连衣裙&#xff0c;如何向打版师清晰地传达它的内部结构&#xff1f;是画一堆复…...

在AutoDL上搞定nuScenes数据集:从解压到mmdetection3d初始化(含避坑指南)

在AutoDL云端高效部署nuScenes数据集&#xff1a;全流程解析与实战避坑指南 nuScenes作为自动驾驶领域最具挑战性的3D感知数据集之一&#xff0c;包含1000个复杂城市场景的多模态数据。但对于刚接触云端GPU服务器的研究者来说&#xff0c;从数据解压到环境配置的每一步都可能遇…...