Linux系统使用Docker搭建Traefik结合内网穿透实现公网访问管理界面

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: Linux系统使用Docker搭建Traefik结合内网穿透实现公网访问管理界面


Zotero 是一款全能型 文献管理器,可以 存储、管理和引用文献,不但免费,功能还很强大实用。

Zotero 支持多端同步文献和笔记,但是,官方只给每个账号免费提供了300M的云存储空间,额外空间需要购买,不太划算。


经过我尝试某果云盘,某度云盘,某里云盘等各种云盘后,不是限制每月下载流量就是限存储空间,下载速度完全取决于冲不冲会员,课题组讨论的时候,你突然想到一个想法,需要根据某文献来向导师和同学解释,这时候某云盘的下载速度100k每秒,想想都刺激。


最终我采用的方式是使用Zotero官方支持的WebDAV功能,云同步文献信息和笔记信息,使用NAS作为WebDAV服务器+内网穿透实现公网条件下的多端同步,对比使用各种云盘,这种使用方式的优点如下:


容量完全取决于本地磁盘容量,可以自由扩展

上传下载同步速度是网盘的好几倍

资源存在本地,无需上传至流氓云盘,保证隐私

只需配置一次,后续可以固定使用

缺点如下:


需要自行配置WebDAV服务器


需要群晖NAS虚拟机/实体群晖NAS(也可以使用windows自带WebDAV作为服务器,本文介绍使用群晖NAS虚拟机搭建WebDAV服务器)

点击获取群晖虚拟机和使用方式:


百度网盘链接:


链接:https://pan.baidu.com/s/1XSShPW5WYEA4vVNZNmoY9g?pwd=6666 提取码:6666

一、Zotero安装教程

  • 下载地址:Zotero | Your personal research assistant
  • 默认安装即可


二、群晖NAS WebDAV设置

打开群晖 File Station ,在根目录中自行选择一个文件夹在其中新建 zotero 文件夹

我的路径是:/homes/zotero


点击打开套件中心,并搜索WebDAV,点击安装套件。

打开套件:


安装完成后,启动WebDAV服务,并勾选HTTP复选框

它的默认端口为5005端口,此处也可自行修改

点应用后,群晖nas部分设置完毕。

三、Zotero设置


首先,需要找到设置界面

WIN系统:编辑—首选项

MAC系统:点击菜单栏Zotero-首选项-同步

输入账号密码(第一次使用先创建账号)


选择 同步 , 成功登录后如下图所示,取消勾选红框部分

  • 红框处不要勾选,这样会将附件同步至官方云存储。
  • “我的文献” 同步方式 改为 WebDAV
  • 地址为 群晖nas局域网IP / homes
  • 用户名密码为群晖nas的用户名密码
  • 点击 验证服务器,显示如下说明成功链接nas WebDAV服务器:


选择 高级 —— 文件和文件夹

  • 数据存储位置选择 自定义 ,路径为: 网络/你的nas /homes/zotero (刚刚创建的路径)


上传一些文献,点击右上角 同步 按钮:

打开 群晖 nas WebDAV 路径查看是否上传相关文件:


成功上传,说明nas WebDAV 服务器正常工作,接下来我们使用内网穿透将群晖nas的 WebDAV 服务端口映射至公网,实现公网环境也能使用 群晖WebDAV的 同步功能。

四、使用公网地址同步Zotero文献库


我们需要在局域网内能访问群晖的电脑上安装不限流量可以免费使用的内网穿透软件**Cpolar**:


访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。


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


windows系统:在官网下载安装包后,双击安装包一路默认安装即可。

macos系统:Cpolar快速入门教程:macOS系列 - cpolar 极点云

也可以直接安装Cpolar 群晖套件:如何在群晖系统中安装cpolar(群晖7.X版) - cpolar 极点云


使用电脑本机安装和使用群晖套件安装两种方式都可以映射群晖WebDAV:


使用群晖Cpolar套件,WebUI是 【http://群晖局域网ip:9200】

使用电脑本机安装Cpolar,WebUI是 【http://本机局域网ip:9200】

使用cpolar账号登录,登录后即可看到cpolar web 配置界面:

点击**——隧道管理——创建隧道**:


  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择tcp
  • 本地地址:群晖IP:5005
  • 域名类型:随机端口
  • 地区:选择China


隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址.

保存这条公网地址: tcp://1.tcp.cpolar.cn:24087

打开另一台电脑的zotero软件,登陆同一zotero账户:

操作同上,选择WebDAV,下面的官方云服务取消打钩。

点击验证服务器,测试一下能否正常连接:


稍等一下,所有存在群晖nas /homes/zotero 路径下的可读文献就都同步过来了。

测试多端同步笔记:

打开一篇论文,高亮显示一段文字,再添加一个便签:


打开本机 成功同步:

五、使用永久固定公网地址同步Zotero文献库


为了更好地演示,我们在前述过程中使用了Cpolar生成的隧道,其公网地址是随机生成的。不便记忆,例如3ad5da5.r10.Cpolar.top,换个设备登陆还要去查这个地址,而且随机域名还是24小时变换,第二天登陆又要去查看新生成的地址。


所以我一般会提前在官网配置固定TCP地址,比较好记,每次登陆直接点开就能登陆,无需重新配置一遍地址。


官网控制面板,保留TCP:


Cpolar - secure introspectable tunnels to localhost

地址:选择China VIP / China VIP Top,记住选了什么,更新隧道处 选一样的。

保留成功,复制这条固定TCP地址:

我的固定地址是: 5.tcp.vip.cpolar.cn:10576

回到WebUI界面,修改下配置:


  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:不变
  • 本地地址:不变
  • 域名类型:固定TCP
  • 预留的TCP:复制粘贴上述固定地址
  • 地区:选择相同地区

点击更新

隧道更新后,点击左侧的状态——在线隧道列表,查看所生成的固定公网地址.


使用固定地址同步WebDAV:

回到另一台电脑,打开同步设置界面:

将原来的随机临时TCP地址更换为我们在官网控制台保留的 永久固定TCP地址,其他不需要修改

再次验证:


成功与本地群晖NAS WebDAV服务器建立链接,使用固定地址后,就是永久不变的,不用像使用网盘一样担心会员到期,下载速度被限制等等,所以资源都存在本地,保证隐私,安全又放心。


相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
相关文章
|
7天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
120 78
|
7天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
56 13
|
7天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
25 0
|
Linux Shell Docker
Docker基础技术:Linux Namespace【上】
点点收获: //之前发现Coolshell上好久不更新了, 博主果然去搞大业去了,只恨这几篇文章看到太晚了啊~太厉害了. 1.  clone(), unshare(), setns()初识; 主要是š三个系统调用 šclone() - 实现线程的系统调用,用来创建一个新的进程,并可以通过设计上述参数达到隔离。 šunshare() - 使某进程脱离某个namespace š
1837 0
|
Linux Shell Docker
Docker基础技术:Linux Namespace【下】
收获: 模仿docker0的那一套IP命令集,太TMD酷了!I'm starving. 另外两点: 1. 网络原理之后的Docker方面: Docker的resolv.conf没有用这样的方式,而是用了上篇中的Mount Namesapce的那种方式 另外,docker是用进程的PID来做Network Namespace的名称的。 2. IPVLAN  
1685 0
|
15天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
152 77