群晖NAS使用Docker本地部署网页版Ubuntu系统并实现无公网IP远程访问

文章目录

    • 前言
    • 1. 下载Docker-Webtop镜像
    • 2. 运行Docker-Webtop镜像
    • 3. 本地访问网页版Linux系统
    • 4. 群晖NAS安装Cpolar工具
    • 5. 配置异地访问Linux系统
    • 6. 异地远程访问Linux系统
    • 7. 固定异地访问的公网地址

前言

本文旨在详细介绍如何在群晖NAS部署docker-webtop,并结合cpolar内网穿透实现远程访问网页版Linux系统的步骤和方法。

docker-webtop是一个基于Docker的Web桌面应用,它允许用户通过浏览器远程访问和操作一个完整的Linux图形化环境。这种解决方案非常适合那些需要在不同设备之间无缝切换工作环境的用户。然而,由于网络环境的限制,用户可能无法直接远程访问部署在私有云环境中的docker-webtop。

为了解决这个问题,我们可以利用cpolar这一强大的内网穿透工具。cpolar通过创建一个安全的隧道,将本地网络中的服务暴露到公网上,从而允许用户从任何位置远程访问这些服务。通过结合群晖、Docker、docker-webtop和cpolar,我们可以实现一个完整的远程访问解决方案:在群晖设备上使用Docker部署docker-webtop,并通过cpolar将docker-webtop的Web服务暴露到公网上,从而实现远程访问。

1. 下载Docker-Webtop镜像

本例群晖版本由于无法直接在群晖控制面板docker界面搜索下载docker镜像,所以采用命令行方式进行镜像下载,

首先开启群晖ssh连接,然后使用工具通过ssh连接上群晖,然后执行下面命令拉取镜像

sudo docker pull lscr.io/linuxserver/webtop:ubuntu-kde

上面命令中,ubuntu-kde 表示运行一个ubuntu系统的Linux,如果需要运行其他的系统,可以看一下网上文档:https://gitcode.com/linuxserver/docker-webtop/overview, 拉取的镜像比较大,执行后耐心等待拉取完成即可.

image-20240515173116334

然后返回群晖管理面板,可以看到已经下载好了镜像,下面运行该镜像

image-20240515174130546

2. 运行Docker-Webtop镜像

选中镜像,点击运行,进入设置界面

image-20240516110543627

容器名称可以自己设置,如果需要设置自启动,勾选"启用自动重新启动即可",首次安装,建议不要设置自启动,设置完成然后点击下一步

image-20240516111011981

然后设置对外访问端口,3000表示http访问,3001表示https访问端口,这里设置对应容器内的端口即可,设置完成点击下一步

image-20240516111130845

然后再点击完成,点击后容器自动运行了,下面进行局域网内访问

image-20240516111241524

3. 本地访问网页版Linux系统

上面我们设置运行Docker-Webtop容器后,进入容器页面查看状态,Up状态表示正常

image-20240516111542594

然后通过群晖局域网IP加3000端口在浏览器上进行访问,即可成功访问到了我们Linux界面,本地访问就成功了,下面我们配置远程访问,让我们在异地网络也可以访问这个Linux,首先安装cpolar内网穿透工具.

image-20240516111801274

4. 群晖NAS安装Cpolar工具

cpolar 提供了群晖安装的套件,点击下面Cpolar群晖套件下载地址,下载相应版本的群晖Cpolar套件,如果找不到对应的型号,可以选择相近版本型号套件

https://www.cpolar.com/synology-cpolar-suite,

20221222170135

打开群晖套件中心,点击右上角的手动安装按钮。

image-20240111165335915

选择我们本地下载好的cpolar套件安装包,然后点击下一步

image-20240111165603922

点击同意按钮,然后点击下一步

image-20240111165702028

最后点击完成即可。

image-20240111165721365

安装完成后,在外部浏览器,我们通过群晖的局域网ip地址9200端口访问Cpolar的Web管理界面,然后输入Cpolar邮箱账号与密码进行登录,如无账号可去官网注册:
cpolar官网地址:https://www.cpolar.com/

image-20230612165349594

5. 配置异地访问Linux系统

在cpolar管理界面,点击左侧仪表盘的隧道管理——创建隧道,创建一个的公网地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择 http
  • 本地地址:3000 (本地访问的http端口)
  • 域名类型:免费选择随机域名
  • 地区:选择China vip

点击创建

image-20240516113055125

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https,上面我们设置的是3000端口,所以选择http访问即可

image-20240516113131891

6. 异地远程访问Linux系统

使用上面cpolar生成的http地址,在任意设备浏览器输入访问,即可看到Linux Ubuntu系统界面,这样一个远程访问的地址域名就设置好了,无需公网IP,无需云服务器,实现了远程异地访问该Linux 网页版Ubuntu系统 .

image-20240516113550877

小结

为了更好地演示,我们在前述过程中使用了cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定二级子域名,原因是我希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:linuxsystem.cpolar.cn),这样更显正式,便于流交协作。

7. 固定异地访问的公网地址

由于以上使用Cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【ps:cpolar所有域名已备案】

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240516114032672

保留成功后复制保留成功的二级子域名的名称

image-20240516114804971

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20240516114134144

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不要重复点击)

image-20240516114213484

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名的名称域名

image-20240516114239088

最后,我们使用固定的公网http地址访问,可以看到同样访问成功,这样一个固定且永久不变的公网地址就设置好了!

image-20240516114556464

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/879919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电力电塔电线缺陷检测数据集 voc yolo

电力 电塔电线缺陷检测数据集 10000张 带标注 voc yolo 电力电塔电线缺陷检测数据集 数据集描述 该数据集旨在用于电力电塔和电线的缺陷检测任务,涵盖多种常见的缺陷类型。数据集包含了大量的图像及其对应的标注信息,可用于训练计算机视觉模型&#x…

c++运行.h和.cpp格式代码_windows

1、main.cpp 一个主程序文件&#xff0c;这是主程序文件&#xff0c;调用了 TestClass 类中的方法。 #include "TestClass.h" #include <iostream>int main() {TestClass testObj; // 创建TestClass类的对象testObj.printMessage(); // 调用类的方法std::co…

Linux:进程(一)

目录 一、概念的理解 二、指令操作 一、概念的理解 在许多地方对进程的定义都是这样的一句话&#xff1a;加载到内存中的程序、正在运行的程序、进程可以排队 而要真正理解进程是什么&#xff0c;这一句话的解释远远不够。 在定义进程之前&#xff0c;先来理解程序&#xff0…

21、Tomato

难度 低(个人认为中) 目标 root权限 一个flag 使用VMware启动 kali 192.168.152.56 靶机 192.168.152.66 信息收集 端口信息收集 可以看到有个ftp服务&#xff0c;2211实际是ssh协议端口&#xff0c;80、8888是一个web服务 web测试 80端口显示一个tomato 查看源码给了一些…

网关过滤器(Gateway Filter)

网关过滤器&#xff08;Gateway Filter&#xff09;是在微服务架构中&#xff0c;特别是在使用Spring Cloud Gateway等API网关时&#xff0c;用于拦截并处理进出网络请求的重要组件。它们允许开发者在请求被路由到目标服务之前或响应被返回给客户端之后&#xff0c;对请求和响应…

MATLAB系列06:复数数据、字符数据和附加画图类

MATLAB系列06&#xff1a;复数数据、字符数据和附加画图类 6. 复数数据、字符数据和附加画图类6.1 复数数据6.1.1 复变量&#xff08; complex variables&#xff09;6.1.2 带有关系运算符的复数的应用6.1.3 复函数&#xff08; complex function&#xff09;6.1.4 复数数据的作…

expressjs 如何封装接口响应数据

在 Express.js 中封装接口响应数据是一个常见的需求,它有助于保持 API 响应的一致性、易于维护和调试。封装响应数据通常涉及创建一个或多个中间件或工具函数,这些函数可以处理诸如设置状态码、构造响应体、添加通用头部等任务。 以下是一个简单的示例,展示了如何在 Expres…

QUIC 和 HTTP/3:提升网络性能的关键技术

一、引言 1.1 简要介绍 QUIC 和 HTTP/3 QUIC&#xff08;Quick UDP Internet Connections&#xff09;是一种基于 UDP 的传输层协议&#xff0c;旨在解决 TCP 在高延迟和丢包环境下的性能问题。HTTP/3 则是 HTTP 协议的最新版本&#xff0c;它基于 QUIC 协议而非 TCP&#xf…

【笔记】时间复杂度

文章目录 时间复杂度概念常见的时间复杂度时间复杂度的衡量常数时间例子线性时间例子平方时间例子对数时间例子 时间复杂度概念 时间复杂度&#xff1a;衡量算法随着输入量增长&#xff0c;执行时间的增长速度。 一般来说&#xff0c;肯定是希望时间复杂度小点比较好。 常见…

linux文件同步、传输

使用rsync 适合用于大量文件多次同步&#xff0c;此工具是增量的同步&#xff0c;即如果之前同步过一次了&#xff0c;后续再同步&#xff0c;他只会传输有变化、新增的文件&#xff0c;就是之前同步过的文件如果没有变化&#xff08;文件大小、修改时间等判断&#xff09;就不…

Python使用虚拟环境解决依赖冲突

在处理多个 Python 库依赖时&#xff0c;遇到依赖冲突是很常见的&#xff0c;特别是当项目依赖的库版本相互不兼容时。要解决这些冲突&#xff0c;可以采用以下方式。 1. 虚拟环境的使用 为了避免系统级和用户级包的冲突&#xff0c;建议你使用 虚拟环境。虚拟环境为每个项目…

【FPGA】编程方式

FPGA编程方式 1 什么是PLD&#xff1f;2 什么是颗粒度&#xff1f;3 可编程逻辑器件的编程方式有哪些&#xff1f;3.1 SRAM 编程技术3.2 Flash/EEPROM 编程技术3.3 反熔丝编程技术3.4 编程技术比较 参考资料 1 什么是PLD&#xff1f; 可编程逻辑器件 英文全称为&#xff1a;pr…

SpringBoot 数据库表结构文档生成

官方地址&#xff1a;https://github.com/pingfangushi/screw screw 螺丝钉&#xff0c;支持以下数据库 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB&#xff08;2016&#xff09; 生产文档支持 html word markdown 开始 添加依赖 <!-- 螺丝钉 --><…

【Kubernetes】常见面试题汇总(二十九)

目录 81.简述你知道的几种 CNI 网络插件&#xff0c;并详述其工作原理。K8s 常用的CNI网络插件&#xff08;calico && flannel&#xff09;&#xff0c;简述一下它们的工作原理和区别。 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff…

c语言面试字符串复制

1&#xff0c;下面这个函数的打印是什么&#xff1a; #include<stdio.h> #include<string.h>int main() {char str0[5], str1[] "welcome";strcpy(str0, str1);printf("str0:%s\r\n",str0);printf("str1:%s\r\n",str1); } larkla…

nginx实现https安全访问的详细配置过程

文章目录 前言什么是 HTTP&#xff1f;什么是 HTTPS&#xff1f;HTTP 和 HTTPS 的区别为什么 HTTPS 被称为安全的&#xff1f;配置过程配置自签名证书 前言 首先我们来简单了解一下什么是http和https以及他们的区别所在. 什么是 HTTP&#xff1f; HTTP&#xff0c;全称为“超…

Apache Iceberg 试用

启动 spark-sql 因为 iceberg 相关的 jars 已经在 ${SPARK_HOME}/jars 目录&#xff0c;所以不用 --jars 或者 --package 参数。 spark-sql --master local[1] \--conf spark.sql.extensionsorg.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \--conf spar…

notepad++的json查看

json文件查看 因为接触到3dtile模型&#xff0c;所以经常需要和json打交道&#xff0c;但是很多模型是下面这种情况&#xff0c;不好阅读&#xff0c;所以可以使用notepad的插件查看 正常打开是这样的 加载notepad插件 搜索json下载安装就可以了 如果网络抽象&#xff0c;下载…

Hive企业级调优[3]—— Explain 查看执行计划

Explain 查看执行计划 Explain 执行计划概述 EXPLAIN 命令呈现的执行计划由一系列 Stage 组成。这些 Stage 之间存在依赖关系&#xff0c;每一个 Stage 可能对应一个 MapReduce Job 或者一个文件系统的操作等。如果某 Stage 对应了一个 MapReduce Job&#xff0c;则该 Job 在 …

Apache James配置连接达梦数据库

项目场景&#xff1a; Apache James配置连接达梦数据库&#xff0c;其他配置中不存在的数据库也可参考此方案。 配置步骤 1、把需要的jar包导入到James 把DmJdbcDriver18.jar复制到下面lib目录下 james-2.3.2\lib 2、 修改连接配置 james-2.3.2\apps\james\SAR-INF\confi…