当前位置:首页 > 其他 > 正文内容

debian/ubuntu/centos7系统安装syncthing文件同步软件教程

23vps2年前 (2022-09-16)其他1376

实验系统:debian10/ubuntu/CentOS7 64位


阿里云限量代金券 | 此广告位出租25元/月

用putty或者其他ssh工具连上服务器,然后用wget命令下载Syncthing的Linux 64位版,版本号对应官网上的最新版,请自行选择:

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

现在可以把下载到的文件解压,然后进入解压后的目录:

tar zxvf syncthing-linux-amd64-v1.22.2.tar.gz
cd syncthing-linux-amd64-v1.22.2

有个可执行文件syncthing,我们要把它放到我们的PATH中,以便直接执行:

cp syncthing /usr/local/bin

返回上一级目录:

cd ..

到这里我们在VPS上的Syncthing已经安装好了,可是直接运行的话,并不能通过外网访问到管理页面,因为Syncthing的管理页面默认是只有本机可以访问的,所以接下来还要进行一点修改,先运行Syncthing:

syncthing

随后就会看到有很多信息,和之前在Windows运行一样,看到类似以下内容的时候就可以按CTRL-C退出程序了:

[OH4IP] 13:32:15 INFO: Completed initial scan (rw) of folder edatb-zzc5f
[OH4IP] 13:32:15 INFO: Device OH4IPQD-QDCDAZB-YMMZE4F-BAK4BLQ-3EZLPTD-V73J37V-LTW44V6-YSM6JQ7 is "ruter.ga" at [dynamic]
[OH4IP] 13:32:15 INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or directory
[OH4IP] 13:32:15 INFO: Creating new HTTPS certificate
[OH4IP] 13:32:15 INFO: GUI and API listening on 127.0.0.1:8384
[OH4IP] 13:32:15 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[OH4IP] 13:32:16 INFO: Detected 0 NAT devices

我们第一次运行是为了让它创建配置文件,然后我们再进行修改。用以下命令对配置文件进行编辑(centos建议用vi命令):

nano ~/.config/syncthing/config.xml

一瞬间是不是懵逼了?不要慌,先找到下面这几行:

<gui enabled="true" tls="false" debugging="false">
    <address>127.0.0.1:8384</address>
    <apikey>2GeGJK9z6tXKP3nHJYU56ZHoYSYnqQ9S</apikey>
    <theme>default</theme>
</gui>

然后把IP127.0.0.1修改成0.0.0.0即可保存退出:

<gui enabled="true" tls="false" debugging="false">
    <address>0.0.0.0:8384</address>
    <apikey>2GeGJK9z6tXKP3nHJYU56ZHoYSYnqQ9S</apikey>
    <theme>default</theme>
</gui>

2024年7月3日更新:

遇到一个棘手的问题,主机哥在debian12系统下运行syncthing后竟然没有在此路径“~/.config/syncthing/config.xml”找到config.xml配置文件,询问ChatGPT后得知可以使用下面命令查找config.xml

find ~ -name config.xml

结果如下:

/root/.local/state/syncthing/config.xml

在debian12系统下修改config.xml配置文件:

nano /root/.local/state/syncthing/config.xml

设置好之后执行syncthing运行,就可以通过http://your_ip_addr:8384来进行访问管理了,如果直接通过外网ip:端口访问还是无法打开管理页面,那就需要进行防火墙的设置开启8384端口了(不懂防火墙设置的也可以借用第三方VPS管理软件设置如宝塔、appnode):

其实主机哥我不会使用命令,命令是我的弱项,我这里就不班门弄斧了,自行去百度搜索方法

再次打开http://your_ip_addr:8384就能看见管理页面了

可以很明显地看到一条警告信息,提醒我们设置管理用户及密码,点击「设置」,然后把「用户名」和「密码」填写好,「使用加密连接到图形管理页面」这个是开启HTTPS,按需勾选


执行syncthing报错提示WARNING: Failed to initialize config: failed to generate default config: get free port (GUI): listen tcp 127.0.0.1:0: bind: cannot assign requested address的解决办法:

是因为没有生成默认的配置文件导致的,手动创建配置文件:

nano ~/.config/syncthing/config.xml

复制黏贴以下内容

<configuration version="30">
    <gui enabled="true" tls="false">
        <address>127.0.0.1:8384</address>
        <apikey>自己设置的API KEY</apikey>
        <theme>default</theme>
        <user>somename</user>
        <password>a password</password>
    </gui>
    <options>
        <listenAddress>[::]:22000</listenAddress>
        <globalAnnounceServer>announce.syncthing.net:22025</globalAnnounceServer>
        <localAnnounceEnabled>true</localAnnounceEnabled>
        <autoUpgradeIntervalH>12</autoUpgradeIntervalH>
        <minHomeDiskFree unit="GiB">5</minHomeDiskFree>
    </options>
</configuration>

注意:请将以上内容中的"自己设置的API KEY"、"somename"和"a password"替换为您自己设置的值。注意passwd是采用了 bcrypt 算法进行加密,并且设置了 10 作为 cost 参数生成的哈希值。

主机哥搞了个php代码可以生成syncthing专用的密码哈希值

<?php
$password = "mypassword";  // 指定密码

$options = [
    'cost' => 10,           // 设置 cost 参数为 10
];

// 使用 password_hash() 函数生成哈希值
$hash = password_hash($password, PASSWORD_BCRYPT, $options);

echo $hash;  // 输出生成的哈希值
?>

保存为mm.php

然后执行下面命令就可以看到密码哈希值了

php -f mm.php

如果你觉得麻烦可以使用主机的在线生成网址:https://sh.23vps.com/syncthing-config-gui-passwd-hash.php

最后登录进去时会提示监听地址错误,进设置修改一下就好了,还有就是自己设置的API这里可以在设置-常规里点一下生成,磁盘最低可用值改为1%就好了。最后为了安全,在设置-图形用户界面那里点一下使用加密连接到图形管理页面,保存后刷新一下页面就成了https链接了。


开机启动官方提供了两种方法:Supervisord和systemd

开机自动启动官方文档:https://docs.syncthing.net/users/autostart.html

主机哥采用systemd的方式

找到解压目录etc/linux-systemd/system/syncthing@.service这个文件,改名为syncthing@root.service,root是你希望使用的用户

cd etc/linux-systemd/system
mv syncthing@.service syncthing@root.service

将syncthing@root.service里的ExecStart这行路径修改成实际路径和运行命令,我发现官方给的ExecStart路径里少了个local路径,所以要修改为/usr/local/bin

vi syncthing@root.service   #centos
nano syncthing@root.service  #debian

复制文件到/etc/systemd/system/中

cp syncthing@root.service /etc/systemd/system

重新加载配置文件

systemctl daemon-reload

管理命令

#设置开机启动
systemctl enable syncthing@root.service
#取消开机启动
systemctl disable syncthing@root.service
#启动服务
systemctl start syncthing@root.service
#停止服务
systemctl stop syncthing@root.service
#查看状态
systemctl status syncthing@root.service


进阶:

让linux软件后台运行的简单方法:https://diannaobos.com/post/254.html

在服务器上使用Syncthing可以修改配置文件后使用外网进行访问管理,本地端也可以如法炮制,如果没有外网IP则需要使用FRP之类的进行映射,具体操作请移步FRP内网穿透工具:https://diannaobos.com/frp/


注意:

如果提示下图信息:

只需要执行下面这个命令,让syncthing可读写

chmod 777 /usr/local/bin/syncthing


扩展:

以上只是简单的安装和设置步骤,还有很多内容没有涉及到,例如开机启动、忽略同步内容、命令行操作等等,具体请查看官方文档,里面有非常详尽的教程。

官方文档:https://docs.syncthing.net/index.html

命令行操作:https://docs.syncthing.net/users/syncthing.html

windows版教程:https://23vps.com/post/41.html

本网站由提供服务

扫描二维码推送至手机访问。

版权声明:本文由主机测评网发布,如需转载请注明出处。

本文链接:https://23vps.com/post/42.html

标签: 文件同步
分享给朋友:

“debian/ubuntu/centos7系统安装syncthing文件同步软件教程” 的相关文章

MobaXterm配置SSHTunnel

MobaXterm配置SSHTunnel

MobaXterm作为一款良心的SSH工具,它支持SSHTunnel隧道功能,网上的教程讲的并不详细,所以主机哥写个教程:由于主机哥买了台NAT服务器,由于NAT服务器只有SSH端口没有其他公网端口,安装宝塔后要访问8888端口进行面板设置才能用,这时候SSHTunnel就可以用上了点击Tunnel...

syncthing文件同步软件

syncthing文件同步软件

这是一款可以满足办公、文件共享、团队协作、家庭存储等文件同步需求的开源软件,不依赖中心服务器,完全由自己掌握数据,安全可靠。Syncthing是免费且开源的,而且跨平台支持windows、mac、linux、android等主流平台,除了PC、手机以外,在部分路由器、树莓派等硬件上都能轻松运行,听说...

搭建Syncthing发现和中继服务器和配置Syncthing客户端

搭建Syncthing发现和中继服务器和配置Syncthing客户端

折腾借口Syncthing好是挺好的,但就是同步不给力,公共网络服务其质量参差不齐,网络也说不清。最好的解决方案还是自己搭建发现服务器Syncthing Discovery Server和中继服务器Syncthing Relay Server,有效解决网络连接差,非局域网连接慢的问题。不同于Resi...

魔方财务迁移教程

魔方财务迁移教程

主机哥的魔方财务需要迁移到新的服务器压缩打包所有网站文件备份下载数据库文件在新服务器上安装宝塔添加网站设置伪静态location / { if (!-e $request_filename) { rewrite ^(.*)$ ...

ServerStatus多服务器探针搭建教程

这是一款开源多服务器探针程序项目地址:https://github.com/cppla/ServerStatus 它支持Docker一键部署,也支持手动部署主机哥喜欢Docker一键部署的方式,下面介绍下Docker一键部署的方法服务端Docker: wget --no-check-ce...

php文件分享代码,可设置分享链接有效期并隐藏真实下载地址

这是一个简单的PHP文件分享程序,以下是程序的基本功能:首页需要登录才能显示显示指定目录下的所有文件给每个文件生成分享按钮点击分享按钮会自动复制分享链接分享链接1小时后失效,无法从分享链接中找到真实下载源请注意,这个程序只是一个简单的示例,您需要根据具体需求进行修改和优化,并加强安全措施。以下是程序...