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

Syncthing文件同步 - 免费搭建开源的文件自动同步服务器并公网远程访问【私人云盘】

文章目录

  • 1. 前言
  • 2. Syncthing网站搭建
    • 2.1 Syncthing下载和安装
    • 2.2 Syncthing网页测试
    • 2.3 注册安装cpolar内网穿透
  • 3. 本地网页发布
    • 3.1 Cpolar云端设置
    • 3.2 Cpolar本地设置
  • 4. 公网访问测试
  • 5. 结语

1. 前言

在数据爆炸的当下,每天都会产生海量的数据,这些数据可能是我们手机里新拍的照片、工作接收的文件档案、随手编辑写下的文档、或者新下载的视频等等,这些数据很快就能填满容量堪忧的智能设备(手机、平板等)。正因如此,云存储一时间风头无两,不仅能让这些海量的数据有地方安身,还能随时分享给需要的人。但大厂的云盘总是问题多多,只能自建云盘保平安。

实际上,现在的私人云盘软件已经发展得十分完善,不仅能满足基本的大容量存储需求,还能不受限速困扰。当然,一些私有云盘软件,还能提供很多特色功能。今天,笔者就为大家介绍,如何安装能够自行同步备份数据的软件Syncthing,以及如何与cpolar配合,让我们能在公共互联网上对Syncthing进行操作。

2. Syncthing网站搭建

Syncthing与知名的Resilio Sync很像,都是基于P2P分布式技术,能够让对台设备实现实时同步文件(也可以选择某台设备文件只上传)。不过从其功能设计上看,可能更偏向“文件/文件夹”同步工具,不过并不妨碍我们将其作为云盘服务器工具来使用。

2.1 Syncthing下载和安装

Syncthing虽然是以web页面进行操控,但其安装并不像其他Web部署那样,需要将Web文件放进运行环境中,而是直接提供了对Windows系统来说十分方便的.exe文件安装方式(为什么说Windows?因为笔者使用Windows啊),我们只要在其官网下载页面【https://syncthing.net/downloads/】,下载对应操作系统软件即可。当然Syncthing也提供其他主流操作系统版本的软件下载。

20230428105001

20230428105002

20230428105003

Syncthing软件压缩包下载完成后,将压缩包解压,找到解压后文件夹里的Syncthing.exe程序,双击即可运行。在安装过程中,可能会弹出Windows防火墙询问,我们只要允许其访问即可。

20230428105004

20230428105005

安装程序结束后,Syncthing会自动打开浏览器的8384端口(Syncthing的默认输出端口),进入Syncthing的主界面,我们可以在这里对Syncthing进行设置,如同步内容,设备准入等等。

20230428105006

在设置页面,我们也能找到Syncthing的输出端口号,而我们之后的操作,主要就是将这个只能在局域网内访问到的Syncthing页面,变成能够在公共互联网上访问到的私人云盘入口。

20230428105007

2.2 Syncthing网页测试

当然,为了确定我们能在局域网内访问到Syncthing网页,确保Syncthing网页运行无误,我们可以进行一个小测试,即在浏览器的无痕模式中,输入Syncthing地址+端口号,如果能正常访问到Syncthing网页,即证明我们的Syncthing可以正常运行。

20230428105008

需要注意的是,Syncthing在没有添加到Windows服务列表并启用后台运行时,需要保持命令行窗口运行,如果关闭的话,会导致Syncthing运行终止。

2.3 注册安装cpolar内网穿透

完成Syncthing的安装后,就可以转入cpolar内网穿透工具的安装。与Syncthing一样,cpolar的安装注册同样很简单。我们可以直接在cpolar的官网页面找到下载按钮。

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

20230428105009

笔者使用的是Windows操作系统,因此选择Windows版本进行下载。

20230428105010

Cpolar下载完成后,将下载的文件解压,双击解压后的.msi文件,即可自动执行安装程序。接着只要一路Next就能完成安装。

20230428105011

20230428105012

由于cpolar内网穿透会为每个用户创建独立的数据隧道,并辅以用户密码和token码保证数据安全,因此我们在使用cpolar之前,需要进行用户注册。注册过程也非常简单,只要在cpolar主页右上角点击用户注册,在注册页面填入必要信息,就能完成注册。

20230428105013

20230428105014

3. 本地网页发布

现在,我们有了可以正常运行的Syncthing软件,和可以建立内网穿透数据隧道的cpolar内网穿透,接下来我们就可以使用cpolar,创建一个能够连接本地测试页面的公共互联网地址,让我们的Syncthing能在公共互联网上进行操作设置。

3.1 Cpolar云端设置

文件同步可能是随机和持续的,但cpolar免费版的数据隧道每24小时重置一次。相信谁也不会想每天进行数据隧道的重连,因此可以将cpolar升级至vip版,以便获得能长期稳定存在的内网穿透数据隧道。

下一步,我们着手对内网穿透数据隧道进行设置,要获得长期稳定的内网穿透数据隧道,需要先登录cpolar的官网,并在用户主页面左侧找到预留按钮,并点击进入cpolar的数据隧道预留页面。

在这里生成一个公共互联网地址(也可以看做数据隧道的入口),由于此时这个地址没有连接本地的软件输出端口,因此也可以看做是一条空白的数据隧道。

20230428105015

在预留页面,可以看到很多种可保留的数据隧道,这里我们选择保留二级子域名栏位。

20230428105016

保留二级子域名栏位,需要进行几项信息的简单设置,设置内容为:

  • 地区:服务器所在区域,就近选择即可
  • 二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一
  • 描述:可以看做这条数据隧道的描述,能够与其他隧道区分开即可

完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。

20230428105017

当然,如果这条数据隧道不打算再使用,还可以点击右侧的“x”将其轻松删除,节约宝贵的隧道名额。

20230428105018

3.2 Cpolar本地设置

完成cpolar内网穿透云端的设置,并保留了空白数据隧道后,我们打开本地的cpolar客户端,将云端生成的空白数据隧道与本地的测试页面连接起来。

在本地打开并登录cpolar客户端后(可以在浏览器中输入localhost:9200直接访问,也可以在开始菜单中点击cpolar客户端的快捷方式)。

20230428105019

点击客户端主界面左侧“隧道管理”项下的“创建隧道”按钮,进入本地隧道创建页面(如果要创建临时数据隧道,可直接在这里进行设置,不必登录cpolar官网设置空白数据隧道)。

在这个页面,同样需要进行几项信息设置,这些信息设置包括:

1. 隧道名称 – 可以看做cpolar本地的隧道信息注释,只要方便我们分辨即可;
2. 协议 – 由于Syncthing是网页显示的,因此选择http协议;
3. 本地地址 – 本地地址即为Syncthing的输出端口号,而Syncthing默认输出端口为8384,因此这里也填入8384;
4. 域名类型 – 在这个例子中,我们已经在cpolar云端预留了二级子域名的数据隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名),并在下一行Sub Domain栏中填入预留的二级子域名,该例子中为“Syncthingweb”(如果打算创建临时数据隧道,则直接勾选“随机域名”,由cpolar客户端自行生成网络地址);
5. 地区 – 与cpolar云端预留的信息一样,我们依照实际使用地填写即可;

20230428105020

完成这几项简单设置,就可以点击页面下方的创建按钮,将cpolar云端的空白数据隧道与本地的Syncthing页面连接起来。

我们可以在“隧道管理”项下的“隧道列表”页面中,对这条数据隧道进行管理,包括开启、关闭或删除这条隧道,也可以点击“编辑”按钮,最这条数据隧道的信息进行修改。

20230428105021

4. 公网访问测试

最后,我们点击左侧状态项下的在线隧道列表按钮,就能找到这个页面的公共互联网地址。

20230428105022

不过Syncthing有host头检查功能,因此我们还需要对cpolar的数据隧道进行一个小修改,才能在公共互联网上访问到本地Syncthing网页。

我们回到隧道管理——隧道列表页面,找到“Syncthing页面”的隧道,并点击右侧的编辑

20230428105023

进入“Syncthing页面”,点击高级按钮,为这条数据隧道编辑一个新的host头

20230428105024

点开“高级”设置页面,找到Host头域,将Syncthing在本地的网页地址填入空格处,也就是localhost:8384,这样公共互联网访客通过cpolar访问本地Syncthing网页时,cpolar可以重写host头。填写完成后,点击页面下方的更新按钮,保存我们所做的host头变更。

20230428105025

完成host头的设置后,我们回到在线隧道列表页面,找到Syncthing页面的公共互联网地址,将这个地址粘贴到浏览器中,就能看到本地Syncthing页面,让我们能在公共互联网上,访问到Syncthing页面。

20230428105026

20230428105027

5. 结语

当然,使用cpolar创建的数据隧道访问本地Syncthing页面并不是cpolar内网穿透的唯一用途,我们可以使用cpolar内网穿透创建任何指向本地tcp或http端口的内网穿透数据隧道,将本地网页或软件发布到公共互联网上可正常访问。

相关文章:

Syncthing文件同步 - 免费搭建开源的文件自动同步服务器并公网远程访问【私人云盘】

文章目录 1. 前言2. Syncthing网站搭建2.1 Syncthing下载和安装2.2 Syncthing网页测试2.3 注册安装cpolar内网穿透 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 在数据爆炸的当下,每天都会产生海量的数据,这些…...

SQL——索引

💡 索引 在关系型数据库中,索引是一种单独的、物理上的对数据库表中的一列或多列的值进行排序的一种存储结构,他是某个表中的一列或着若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单(类似于图书目录&#x…...

Java代码组成部分

一、构造函数与默认构造函数 构造函数,是一种特殊方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。 /** * 矩形 */ class Rectangle {/*** 构造函数*/public Rectangle(int leng…...

vue2和vue3有啥区别,vue3的优点有哪些?

Vue.js 是一种流行的 JavaScript 框架,用于开发现代 Web 应用程序。Vue.js 具有简单易用、高效和灵活等特点,能够极大地提高开发效率并改进用户体验。Vue.js 一直在不断更新和改进,它的最新版本是 Vue 3。 在本文中,我们将探讨 V…...

就业内推 | 上市公司招网工,最高25k*14薪,六险一金

01 锐捷网络 招聘岗位:网络工程师 职责描述: 1、承接本产品线(无线或数通)所有咨询、故障、网络变更等业务,响应内外部客户的业务响应需求,需要值班。 2、同时作为产品线技术力的核心,需要负责…...

低代码让开发变得不再复杂

文章目录 前言低代码 VS 传统开发为什么选择IVX?平台比对总结 前言 在数字化的时代背景下,企业都面临巨大的数字化转型的挑战。为了应对这样的挑战,企业软件开发工具和平台也在不断革新和发展。低代码开发平台随之应运而生,成为了…...

【前端客栈】使用CSS实现畅销书排行榜页面

📬📫hello,各位小伙伴们,我是小浪。大家都知道,我最近是在更新各大厂的软件测试开发的面试真题,也是得到了很大的反馈和好评,几位小伙伴也是成功找到了测开的实习,非常不错。如果能前…...

【周末闲谈】超越ChatGPT?科大讯飞星火认知大模型

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 前言星火名字的由来科大讯飞星火落地应用演示赶超ChatGPT的底气在哪里?“硬…...

第N2周:中文文本分类-Pytorch实现

目录 一、前言二、准备工作三、数据预处理1.加载数据2.构建词典3.生成数据批次和迭代器 三、模型构建1. 搭建模型2. 初始化模型3. 定义训练与评估函数 四、训练模型1. 拆分数据集并运行模型 一、前言 🍨 本文为🔗365天深度学习训练营 中的学习记录博客 …...

Salesforce许可证和版本有什么区别,购买帐号时应该如何选择?

Salesforce许可证分配给特定用户,授予他们访问Salesforce产品和功能的权限。Salesforce版本和许可证是不同的概念,但极易混淆。 Salesforce版本:这是对组织购买的Salesforce产品和功能的访问权限。大致可分为Essentials、Professional、Ente…...

接口测试怎么做?全网最详细从接口测试到接口自动化详解,看这篇就够了...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 抛出一个问题&…...

DataStore入门及在项目中的使用

首先给个官网的的地址:应用架构:数据层 - DataStore - Android 开发者 | Android Developers 小伙伴们可以直接看官网的资料,本篇文章是对官网的部分细节进行补充 一、为什么要使用DataStore 代替SharedPreferences SharedPreferences&a…...

用Python爬取中国各省GDP数据

介绍 在数据分析和经济研究中,了解中国各省份的GDP数据是非常重要的。然而,手动收集这些数据可能是一项繁琐且费时的任务。幸运的是,Python提供了一些强大的工具和库,使我们能够自动化地从互联网上爬取数据。本文将介绍如何使用P…...

深度学习-第T5周——运动鞋品牌识别

深度学习-第T5周——运动鞋品牌识别 深度学习-第T5周——运动鞋品牌识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目3、查看数据 四、数据预处理1、 加载数据1、设置图片格式2、划分训练集3、划分验证集4、查看标签 2、数据可视化3、检查数据4、配置数据集 …...

自媒体的孔雀效应:插根鸡毛还是专业才华?

自媒体时代,让许多原本默默无闻的人找到了表达自己的平台。有人声称,现在这个时代,“随便什么人身上插根鸡毛就可以当孔雀了”。可是,事实真的如此吗? 首先,我们不能否认的是,自媒体确实为大众提…...

Linux系统优化

一、系统启动流程 1.centos6 centos6开机启动流程,传送门 2.centos7启动流程 二、系统启动运行级别 2.1 什么是运行级别 运行级别:指操作系统当前正在运行的功能级别; [rootweb01 ~]# ll /usr/lib/systemd/system lrwxrwxrwx. 1 root root…...

Java笔记_22(反射和动态代理)

Java笔记_22 一、反射1.1、反射的概述1.2、获取class对象的三种方式1.3、反射获取构造方法1.4、反射获取成员变量1.5、反射获取成员方法1.6、综合练习1.6.1、保存信息1.6.2、跟配置文件结合动态创建 一、反射 1.1、反射的概述 什么是反射? 反射允许对成员变量,成…...

前端web入门-HTML-day01

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 HTML初体验 HTML 定义 标签语法 总结: HTML 基本骨架 基础知识: 总结&#…...

创建一个Go项目

创建一个Go项目 1.创建项目 package mainfunc main() {println("你好啊,简单点了!") }如果是本地的话可以采用go run 项目名的方式。 可以采用go run --work 项目名的方式,此时可以展示日志信息。 如果是只编译的话 go build 项…...

从 Spring 的创建到 Bean 对象的存储、读取

目录 创建 Spring 项目: 1.创建一个 Maven 项目: 2.添加 Spring 框架支持: 3.配置资源文件: 4.添加启动类: Bean 对象的使用: 1.存储 Bean 对象: 1.1 创建 Bean: 1.2 存储 B…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)&#xff…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...