Hugo博客公告弹窗

Syncthing开源免费跨平台的文件同步工具-利用Syncthing搭建免费同步网盘

   
文章摘要
摘要小助理今天溜号啦……😜

实时同步网盘,其实可以选择也挺多的,OneDrive、Google Drive、Dropbox、Box.com、iCloud等都是支持自动同步备份的,只可惜这些网盘很多都是打不开的。国内的坚果云在同步这一块做得不错,但是免费的额度太少了,不能满足大量同步的需要。

本篇文章要分享的开源免费跨平台的文件同步工具Syncthing,可以实现实时同步备份搭建个人同步网盘的功能,试用了一下发现Syncthing完全可以替代市面上这些同步网盘。Syncthing可以运行在WindowsLinuxMacOS等全平台上,而且提供了安卓手机APP,功能非常强大。

GitHub 项目地址:https://github.com/syncthing/syncthing

文档地址:https://docs.syncthing.net/intro/getting-started.html

客户端下载:https://github.com/syncthing/syncthing/releases

开始安装

推荐使用普通用户安装,请往下看

本文只记录在ubuntu20.04上怎么搭建

更新一下组件

apt update -y && apt install -y curl && apt install -y socat && apt install wget -y

然后:

wget https://github.com/syncthing/syncthing/releases/download/v1.23.7/syncthing-linux-amd64-v1.23.7.tar.gz
tar -zxvf syncthing-linux-amd64-v1.23.7.tar.gz
cd syncthing-linux-amd64-v1.23.7
cp syncthing /usr/local/bin/

接着:

syncthing

使用CTRL + C停止运行,修改文件

vim /root/.config/syncthing/config.xml

127.0.0.1:8384改成 0.0.0.0:8384 即可,保存退出

再输入syncthing运行它。然后在浏览器输入服务器IP:8384访问。

保持后台运行

对于VPS主机运行syncthing如果关闭终端,syncthing也会停止运行,可以将syncthing放在后台,命令如下:

nohup syncthing &

开机自动启动并保持运行

vim /usr/lib/systemd/system/syncthing@.service

加入以下内容

 [Unit]
 Description=Syncthing - Open Source Continuous File Synchronization for %I
 Documentation=man:syncthing(1)
 After=network.target
 
 [Service]
 User=%i
 ExecStart=/usr/local/bin/syncthing -no-browser -no-restart -logflags=0
 Restart=on-failure
 SuccessExitStatus=3 4
 RestartForceExitStatus=3 4
 [Install]
 WantedBy=multi-user.target

然后保存退出,之后就可以通过systemd进行启动和管理了,注意注意把命令里面的root替换成自己的用户名:

启动syncthing

systemctl start syncthing@root.service

设置syncthing开机自启

systemctl enable syncthing@root.service

查看syncthing运行状态

systemctl status syncthing@root.service

停止syncthing

systemctl stop syncthing@root.service

关闭syncthing开机自启

systemctl disable syncthing@root.service

或者可以用--user参数来运行

1systemctl –root start syncthing

禁止IP访问

如果你已经成功绑定了域名到Syncthing,想要禁止使用IP访问Syncthing,那么把配置文件作如下修改即可。

把端口设置成:0.0.0.0:8384,那么syncthing可以通过ip进行访问 。
把端口设置成:127.0.0.1:8384,那么只能通过域名访问,这个时候只有通过nginx反向代理才能访问到127.0.0.1这个本地地址。

更新 Syncthing

v1.23.7 改成最新版本即可

wget https://github.com/syncthing/syncthing/releases/download/v1.23.7/syncthing-linux-amd64-v1.23.7.tar.gz

tar -zxvf syncthing-linux-amd64-v1.23.7.tar.gz

cd syncthing-linux-amd64-v1.23.7

systemctl stop syncthing@root.service

cp syncthing /usr/local/bin/

systemctl start syncthing@root.service

使用普通用户安装

如果以 root 用户启动 Syncthing 会被提示不建议在 root 用户下运行,所以在正式使用之前,

建立新用户

adduser sync

设置密码 然后一路回车默认 最后 y

切换用户:

sudo su sync

进入主目录:

cd /home/sync

开始安装:

wget https://github.com/syncthing/syncthing/releases/download/v1.23.7/syncthing-linux-amd64-v1.23.7.tar.gz

tar -zxvf syncthing-linux-amd64-v1.23.7.tar.gz

cd syncthing-linux-amd64-v1.23.7

cp syncthing /home/sync/syncthing

运行一次 syncthing,程序会将配置文件释放出来。

停止运行程序,先编辑配置文件。

vim /home/sync/.config/syncthing/config.xml

找到 <address> 这行,将 127.0.0.1 改为 0.0.0.0,这样就可以从公网访问 Web UI 了,保存退出。

再次直接运行 syncthing,然后在地址栏输入 http://w.x.y.z:8384/ 进入 Syncthing 的 Web UI 管理界面,第一次访问时会提醒设置账号及密码,建议设置并重启 Syncthing。

这时候 syncthing 就已经可以开始正常使用了,如果使用了防火墙,在过程中对相应的规则进行放行。

那么将执行以下命令:

iptables -I INPUT -p tcp --dport 8384 -j ACCEPT

开机自启

切换回root: sudo su root

vim /lib/systemd/system/syncthing.service
[Unit]
Description=Syncthing
Documentation=man:syncthing(1)
After=network.target

[Service]
User=sync
ExecStart=/home/sync/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

最后:

systemctl enable syncthing

systemctl start syncthing

Syncthing Tray 简单小巧的文件同步工具

点击下载:

Syncthing Tray

CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-11-20 16:13
clarity统计