使用FTP服务配合Tailscale、FreeFileSync实现公网环境文件自动同步

总体思路

使用Tailscale在设备之间进行内网穿透,使其在公网可以互相访问,而后配合使用FreeFileSync 实现文件共享。

前置条件

关于tailscale:同一个账号的所有设备是可以互相访问的,但是别人分享的设备只能由被分享者单方向访问到分享的设备。例如:

a420b09ae87d4df99db61e0be91eadfe.png

此时,A的三台设备都可以去访问到B的设备1,但是B设备都不能访问到A的任意一台设备

d82444809ce84d1f92861e749b53be17.png

在此基础之上,如果A共享其设备1给B账户,那么B的所有设备都能访问到A设备1,且A的设备1与B的设备1是可以双向访问的。

1.搭建FTP服务

1. 选择需要的文件夹(Tips:如果文件夹是某一个特定用户A下的文件夹,则后续访问用户只能为文件夹的所有者A)

f31030b3e0b148c9ad79fe02e4947335.png

 

2. 绑定的IP填写为0.0.0.0

932542cec035462596984cef1c39186a.png

 

3. 身份验证及授权,一般选匿名、所有用户访问,而后确认

99c20d27e86742b794eea6c45e1b195a.png

 

4. 此时在开启FTP服务的机器的文件资源管理器中输入ftp://127.0.0.1/,回车后,正常会显示登录页面,根据上一步的设置进行登录。成功后会显示相应文件

2d6484be897e40dea5e769fabcce946b.png

 

2.登录Tailscale连接设备访问FTP服务文件夹

Tailscale分为两种情况:1)Tailscale账号中没有别人分享的设备;2)Tailscale账号中有别人分享的设备

1. 如果Tailscale账号中没有别人分享的设备,如下图

ee79c224eb294697b49fdf2c372896ee.png

此时可以通过输入Tailscale提供的ip来访问(不需要在同一个局域网),假设是A设备1开启的FTP服务,则在A设备2、3上可以访问 ftp://100.88.132.55/来访问A设备1的文件夹

2. 如果Tailscale账号中有别人分享的设备

a420b09ae87d4df99db61e0be91eadfe.png

假如B设备1分享给A账户,

        1)此时如果FTP服务启动在B设备1上,那么,A的所有设备都可以通过访问 ftp://100.118.56.11/来访问B设备1的文件夹

        2)此时如果FTP服务启动在A设备1上,A的所有设备都可以通过访问 ftp://100.88.132.55/来访问A设备1的文件夹,而B设备1不可访问A设备1

(解决方法是:将A设备1分享给B账户,

d82444809ce84d1f92861e749b53be17.png

分享后,B设备1可通过ftp;//100.88.132.55/来访问A设备1的文件夹)

3.使用FreeFileSync实现文件同步

假如需要在A设备1B设备1实现文件同步,且A设备1启动FTP服务,A设备1B设备1已经在Tailscale中双向共享。那么操作如下:

1.假设在B设置1中打开FreeFileSync,而后左侧填入A设备1的ip:100.88.132.55,端口默认21,其余遵循FTP服务器的设定

3a67b83f5dcd441e81e1375b101dd8da.png

2.右侧选择B设备1中需要同步的文件夹

ac08f9edce0644ddb1657d40e5cf102c.png

3.选择需要的同步策略

d9abe4dbb7ba4bd0baa40a0d8511d2b9.png

 4.确定同步策略后,将其另存为脚本

8c28167d71dc4b21bd8d3364dacd1d13.png

这里存为 BisSync.ffs_batch。

由于RealTimeSync不支持ftp进行同步,这里需要新建一个批处理文件来处理刚刚保存的脚本。可参考以下链接:工具分享之文件同步工具FreeFileSync(2) - 知乎 (zhihu.com)

5.新建ftp_Sync.bat文件,内容如下:

@echo off

echo.

:: 注释内容——设置默认的文件同步时间间隔,5秒

set file_interval=5

:: 注释内容——统计文件同步的次数

set File_Sync_Sum_Num=0

echo *默认文件同步的时间间隔是5秒,选择默认值可直接点击“回车键”

echo.

echo *自定义文件同步的时间间隔,输入大于等于1的整数,然后点击“回车键”

echo.

set /p file_interval= *自定义文件同步的时间间隔(单位:秒):

echo.

:onme0

:: 注释内容——C:\Program Files\FreeFileSync\FreeFileSync.exe是程序安装的目录

:: 注释内容——C:\Users\xxx\Desktop\BisSync.ffs_batch是作业脚本的目录

start "FreeFileSync" "C:\Program Files\FreeFileSync\FreeFileSync.exe" C:\Users\xxx\Desktop\BisSync.ffs_batch

set /a File_Sync_Sum_Num=File_Sync_Sum_Num+1

echo 执行文件同步地第%File_Sync_Sum_Num%次的时刻:%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%

TIMEOUT /T %file_interval% /NOBREAK >nul

goto onme0

6.保存后,运行ftp_Sync.abt查看是否正常运行,如果正常运行会有以下页面

af95bde8a2a949aa85cc4ef0b55ea743.png

而后在A设备1的文件夹下新建一个test.txt文件,五秒后在B设备1中的文件test.txt也存在

cd84d1cbf2ae44789e37d0e91afd3829.png

打开A设备1的test.txt与B设备1的test.txt,在A设备1的test.txt输入任意文字,保存后
d11f9339a1804dbab1fdd9a95a1f68a3.png

重新打开 B设备1的test.txt,如果test.txt内容与A设备1一致,则配置成功。

fce5387dec6e42a4a538763c49a2177c.png

 关闭刚刚的bat脚本

4.使用nssm最小化运行自动同步脚本

由于刚刚的bat批处理文件容易被删除和关闭,所以可以将其最小化一下

下载nssm,官网地址:https://nssm.cc/download

1.更改以上ftp_Sync.bat文件如下:(去除提示性代码,自己修改设置同步时间间隔)

@echo off

echo.

:: 注释内容——设置默认的文件同步时间间隔,60秒

set file_interval=60

:onme0

:: 注释内容——C:\Program Files\FreeFileSync\FreeFileSync.exe是程序安装的目录

:: 注释内容——C:\Users\xxx\Desktop\BisSync.ffs_batch是作业脚本的目录

start "FreeFileSync" "C:\Program Files\FreeFileSync\FreeFileSync.exe" C:\Users\xxx\Desktop\BisSync.ffs_batch


TIMEOUT /T %file_interval% /NOBREAK >nul

goto onme0

2.定位到nssm.exe文件所在的文件夹下,而后右键调出cmd,输入nssm install,会弹出nssm服务安装界面,选择刚刚的bat脚本,输入服务名:aotuSyncService,而后点击install service

98bb61883511472f903e25ba27f9b47b.png

3.搜索“服务” ,点击aotuSyncService,而后启动即可

ca86c5094ab5496b9806100c7508965f.png

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值