扫一扫,微信登陆

 青浦修电脑 青浦笔记本维修 青浦手机维修 青浦电器维修

搜索
查看: 316|回复: 0

网络文件同步使用说明

[复制链接]

354

主题

381

帖子

2181

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2181
QQ
发表于 2024-11-16 11:23:18 | 显示全部楼层 |阅读模式
出处:https://blog.csdn.net/weixin_429 ... 21699-null-null.142^v100^pc_search_result_base8&utm_term=Syncthing&spm=1018.2226.3001.4187
" ]3 l) o* s# D! c! \; `. Z! m+ z+ H& n" Q; S- ]
5 S7 c9 M9 t. x: Y
简介
7 G) R( p  g: ]- c/ S. T. Z; TSyncthing是一款开源的文件同步工具,可以通过本地网络或互联网实现多台设备之间的文件同步。与其他同步工具不同,Syncthing强调隐私和安全,确保用户的数据始终处于用户的控制之下。! v, r! {0 g) ~8 d8 Z* q& G1 E

7 C* j" S! T( d9 u: B) O9 A功能与特点/ r5 k& y0 P- B$ i/ f- O
开源软件:3 ?& P7 F1 n+ y% Y
/ r; v! V4 T$ n) F# \4 [7 q8 r
Syncthing是完全开源的,源代码托管在GitHub上,任何人都可以查看、审查和贡献代码。这种透明性增强了用户对软件安全性的信任。
3 E0 L" ]3 I& a0 y去中心化:
3 X: s; y- v6 B3 m. V; ?3 r
  x  Z, G+ h  |2 R* \9 }Syncthing采用P2P(点对点)架构,没有中央服务器,所有数据传输直接在设备之间进行。这不仅提高了数据传输速度,还消除了对第三方服务器的依赖。% ]8 z( }4 x/ W' V; E7 ^4 O" A
跨平台支持:2 F' A1 C/ U( e, A% n( \1 E; u

. J& z9 x0 ]: e1 ]Syncthing支持多种操作系统,包括Windows、macOS、Linux、BSD、Solaris、Android等,能够满足不同用户的需求。
! `+ v' Y* _3 Q) B$ X- n% p( G. Q安全性:" Q8 c4 P1 L# f, \0 B+ z

. u/ U9 b% m4 J2 T7 @+ Q! m数据在传输过程中使用TLS加密,确保通信的安全性。此外,每个节点都有唯一的设备ID,通过设备ID进行认证和连接,防止未经授权的设备访问。  a0 p- s, l+ a# O
实时同步:
% ?$ ~4 u4 ]! Z  v0 E) u: Q4 }. J! D; m* G6 l# ~7 e) T
文件修改后会立即触发同步操作,实现实时更新。Syncthing能够检测文件的变化,并迅速同步到其他设备上。
4 l8 j" i. p+ ?+ l/ F4 Z. J版本控制:
3 d' ^/ b( W" y% z. f  z
1 e4 X" o0 z/ BSyncthing支持文件版本控制,可以保留多个文件版本,方便用户在需要时恢复到之前的版本。- [6 J- `) j7 P9 a3 x
配置灵活:6 p" L" Z4 Z% @5 T" z& O

  ~! T. ^! d( H5 A3 w# ZSyncthing提供了丰富的配置选项,用户可以根据需要设置同步目录、同步频率、带宽限制等参数,满足不同的使用场景。5 `! u$ |8 Q" M3 C& I8 I4 e
简单易用:5 K( F" D& w. g

3 Q8 ?! O7 X; }& i) @% W; a  O8 j$ o4 l通过一个友好的Web GUI(图形用户界面),用户可以轻松管理和监控同步状态,进行配置修改。
1 |2 y0 M$ z" C优点
/ l+ d3 F1 I1 v) ~6 [隐私保护:
7 a. {6 h) J" R5 Y
& ?% Y! E. g. J, J3 d因为不依赖于任何中央服务器,用户的数据不会存储在第三方服务器上,完全在用户的掌控之中,极大地保护了隐私。" G+ @/ H' ]; P0 B6 c
高效的带宽利用:% l7 J" Z/ H0 I. ~5 w2 r- B  F& }

+ ^; I, g5 u) }) i3 d. XSyncthing在同步过程中只传输更改的部分(增量同步),而不是整个文件,从而提高了带宽利用率,节省了传输时间和资源。$ h2 {7 |1 }+ p$ I- N1 G/ ~
安全性高:
' p9 _  n5 [/ K+ j3 K
; i6 g, h. |' g3 ]  w使用TLS加密传输数据,设备之间的通信经过认证,防止中间人攻击和未经授权的访问。
) o# c- m( y# {' h4 K/ c& b无缝集成:
7 x/ d, v+ p: S6 e. _1 C
4 W' t) Y( G/ w: JSyncthing可以在多种操作系统上运行,并且支持多设备同步,用户可以轻松地在家用电脑、工作电脑、手机等多个设备之间同步文件。. @7 l- d* I7 }  a
社区支持:  v6 B2 A" z% L9 S; ~& p* R
+ T6 _& N3 m3 T  K0 M* @
作为开源项目,Syncthing拥有活跃的社区支持,用户可以从社区获得帮助和建议,及时解决使用过程中遇到的问题。  A6 A: S, P! H( N7 g( w
定制化:3 _5 \5 @. M9 x3 x
, z9 [9 ?. c0 y7 b  B
用户可以根据自己的需求进行高度定制,包括选择需要同步的文件夹、设置不同的同步策略和频率、限制带宽使用等。
* s& v, I/ u" F6 ~可靠性:
! S. D( a3 ^$ Y* i+ G2 V. |& f- Y* \: m0 X- y+ {1 \
Syncthing的设计使其在网络断开后能够自动恢复同步操作,并且支持自动解决同步冲突,确保数据的一致性和可靠性。. C4 ?2 B0 g& M) {* c
安装教程
; [. R; g' ^  y- h# L注:博主安装过该工具,下面的安装教程,可能会出现一点点区别,不过按照以下操作进行搭建是可以成功的。
# r* B2 C( j( ~! `# _. e8 `3 R
* n* o6 P5 c( u* i+ [% r官方下载地址:https://syncthing.net/downloads/5 v4 T3 |; G! |3 O1 X' n7 G
选择对应的版本进行下载。! J# r/ r; [' \9 u* q
* J* R* W8 f4 L( s1 R# |, h
本文采用两个同步平台为Windows和Ubuntu。可以通过链接:https://wwt.lanzoue.com/b0fomam7g下载本文所对应的安装包。下载密码:hx90& {- i6 s# a4 |7 e8 a
1 w' N7 m7 @; P1 G
两台电脑能实现文件同步的前提是两台电脑的网络能够相互访问。如果一台电脑在内网中,一台在有公网IP的服务器上。可以用有公网IP的服务器搭建一个frp内网穿透工具,通过内网穿透后,就可以实现两台电脑进行网络通信了。
: |7 e$ o" v. D! ?' T
! w( _7 H5 e9 K$ B) j4 C! |Windows安装+ t( c) ?& z# b- S9 @8 m  m
解压安装包,然后双击syncthing.exe打开。6 u6 O6 T. j1 f6 ]! c% M

0 w, D( n$ T% D, k出现这个界面后,可以看见web界面访问地址。初次安装应该会直接在浏览器中打开该地址,然后有一个提示对话框,匿名报告相关的,可以选择否。
! v3 @0 _9 ?  O2 g' q; m+ Q! o/ W; {& [
能出现该界面就说明安装成功了。先不用管界面是否完全一样,下面会介绍如何进行配置。
2 A4 ]! M0 L' s2 Y! l2 y
8 R/ N2 R8 u% X( T% A5 F" YUbuntu安装
1 e* O: `+ M- \" L, f将Linux版的文件上传到服务器,这里使用xshell配合xftp进行操作。& _4 f  W. b( b6 E# W
在xshell中连接成功后,可以点上面图标。
0 n2 w: v/ Z! h; m. U, [! R& e8 Z
8 B4 a. o- i8 ^/ E) x接下来就可以将文件拖拽到Ubuntu中了。" N, `4 w% c! s7 }8 T

6 m1 x* r$ W- l1 ]  C- ~# }
$ R( z% J4 p; z5 K% i" ~/ ~; S接下来解压文件tar -zxf syncthing-linux-amd64-v1.27.9.tar.gz。: H, n5 O% q8 I/ X0 g

4 |8 Z& h) T, {, m+ q3 g) F这里可以修改文件夹的名称。用mv syncthing-linux-amd64-v1.27.9 syncthing就可以。博主前面安装过了,这点就不修改了。0 t# v4 J  y$ ]" A2 O( |
进入syncthing-linux-amd64-v1.27.9文件夹。使用./syncthing serve就可以启动。9 M5 I& L9 r2 b  r
: x& s$ m! W2 o. n6 z5 n7 w
这时如果是图形化的Ubuntu,就可以在Ubuntu浏览器中打开http://127.0.0.1:8384/。博主采用的是腾讯云的vps,直接用ip访问不了。这里需要进行一步操作。7 F0 z; p0 K# ?2 d- c4 `7 x8 y( @

- b+ U* b$ {- M* R配置远程ip访问
$ n/ v! N4 F1 D8 v7 k3 R3 C0 _. p先Ctrl + C停掉服务。
" w3 C/ V2 z7 `$ g查看官方文档后,使用命令./syncthing serve --gui-address=0.0.0.0:8384配置。
: R) g' N4 h% p6 p
' v8 c" O/ s7 B9 f这样就可以远程通过ip访问了,不过你的服务器防火墙需要放行端口。# ^. e7 Q7 T9 F( k

& |' d' E9 h& k
% ~7 T$ C4 G7 ]  ~5 _) y$ h" O3 {+ s配置同步文件夹! P3 Q- h; [4 r% b: o: @
这里需要用到工具的ID,先去服务端查看,启动服务的时候就会显示,现在可以通过web界面进行查看。客户端同理。
9 [' h' w: w6 m' v/ M$ A9 `) K/ O! y: E
刚才复制的是服务端的ID,那么现在就打开客户端的web管理界面。
/ Z- o, G( s1 v1 O0 m+ q6 {9 ^- i8 v1 p* ~/ _
* [% j/ x5 _0 f( ?% k4 E5 [! v& k
如果只是局域网操作,这里直接保存即可。
4 U! ~! M3 W& b如果想公网访问,就可以内网穿透工具。在服务器搭建内网穿透工具,可以参考这篇文章:https://blog.csdn.net/weixin_42951763/article/details/140420245, f  ]1 F4 w7 y, N( Q# d6 k
只需要将链接中Windows客户端的配置修改即可,这里给出一个参考。
& v' n- v  p( D6 ~& }( G, ^6 i( r' N. N, _7 L' \
在启动的时候可以看见tcp使用的默认端口。
2 B. Z7 q* v$ Q& U( C4 @: O: Z9 S9 m9 J* G4 h9 p" I$ u

- R6 r3 U9 |; K配置Ubuntu服务端。打开服务端的web界面。
2 ~( C8 i: p+ j3 I$ e1 l$ f' C0 h3 \( }# A: d9 h$ R
在高级设置中,配置一下地址。
0 q3 Z& u/ v" q- k. Q: ]
% Z) K3 H& Q& Q2 B+ d这里再解释一下这个地址。
" @3 W4 h+ D* K, K% C7 FWindows中的IP不是公网IP,所以Ubuntu服务端不能直接访问到Windows这个客户端。因此才有了frp内网穿透,把Windows映射到公网中。通过映射后的公网IP加上端口,就可以访问到Windows这个内网中的客户端了。
% A2 K5 |0 Q- L; r/ W9 N6 W. O. m1 U* J6 c: ?* i! ~
接下来就可以创建共享的文件夹了。+ k- m- ?$ U1 e- y+ {7 [0 S
先在Windows这边创建。" m0 y$ s, Q' g6 r+ w
$ \- X% _1 K0 k2 l; `; s, H
, K. e/ Z2 V* q1 b6 l) k. T6 f
文件夹共享给Ubuntu。+ {- ]5 }3 T3 s2 D# v( l: |

! a$ f# l6 |) F6 F$ T文件夹版本控制。官方文档的文件版本控制介绍。
1 `- M$ k0 o; p7 W& E% T) i
" l5 n7 j5 b( c% j5 K. M0 V6 @1 C1 u7 }) e, R/ B* Z! V
到这点Windows的就配置好了。" I/ [% v; A1 i# [
这时去到服务端Ubuntu的web界面。
1 T% Q" D+ |- H; f1 e: H0 w5 }* T& K( k& a  h
可以看见出现了一个新文件夹,这时点击添加即可。如果没有出现,可能的原因是服务端这边还没有与Windows进行连接。再次检查一下远程设备是否已经同步完成。
2 A" ]& x+ V0 @; N' Y/ k$ G& m3 _2 ?) ?+ P) c+ |" c1 A5 b
这里选择共享给Windows,这样就可以把Ubuntu变化后的文件也同步到Windows里面。
1 G8 _) [5 _# q) A$ p: v/ J: _8 N: B) E$ G5 q5 B
这样就实现了简单的双向同步文件。
0 P. e9 l: I) P$ l+ y9 C0 F& G7 I  L# e4 ]7 }# d; s4 Y& ]
Syncthing开机自启
4 p1 i1 j/ C7 k. a1 S# N6 MWindows+ x3 o! [, D) t
利用bat文件来实现。2 _2 D) G5 |5 d2 [7 n
在Syncthing的文件根目录中新建一个bat文件,放在这里是方便管理,也可以放在其他地方。
" ~& _1 W0 i; f7 Q  S% L
% l" e$ {- [8 O! B3 |bat文件内容如下:
5 W  w1 t2 D, c$ c. `( ?/ M4 w
@echo off9 W" G* I) x# q$ p; m& k1 ?0 o' j3 |8 S

; m3 ^, Z  G2 v& O, K# T9 Fif "%1"=="h" goto begin2 H2 g( m9 y9 O; m" s

- p" ?; {+ O2 b9 m# U' Estart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
8 H( [8 r# U1 D  X: e* b5 e
: @) b+ N3 }+ @:begin
: |6 `' p+ E1 W* D& `- n7 T( \# c3 T- r4 @: y; s
cd /d D:\syncthing && syncthing.exe serve --no-browser --no-restart --logflags=00 o0 N  k& ^4 a8 i/ L
12 q9 O/ O  J/ ]9 U8 d
2
) h2 ?3 C6 ]# }3
0 H* v/ K) d1 x# D; I3 P4& C1 H% G* r; D; M. K0 [
5
! i: T/ h* H9 b5 G2 a* P6" b: r6 P( Y. T
7
0 e; s9 M3 s3 A; D) [+ |8! K$ y& t- \7 [
95 h& j: g0 Q2 ^* |
只需要修改下图红框中的路径为自己的路径即可。
2 w) M! n+ Q6 O; v. l4 s6 o$ @
. j4 Y. P- ^: D( l# p7 n& Z! Q$ C: h! C6 F7 @
然后保存退出。在bat文件右键创建快捷方式。
9 Y" E* G5 w% L, b
% ?2 b, C( J+ B: ]- a使用win + R打开运行对话框,输入:shell:startup回车。将刚才创建的快捷方式移动到这个目录里面。- i2 U6 B" ?6 b) d- ?" a

( C7 F% }  b) V1 X+ K- G% `! |* ~这样就可以了。9 d9 Z; _; J4 u" Z+ z2 r5 G
; w+ U% L! J8 Q& _8 x
Ubuntu% a' P3 o, y. m. m; A2 _3 u
查看syncthing的目录,然后记录一下这个目录。8 U$ O0 m  p  d* ?9 _/ A

4 F0 r% k' `) Q  Z1 \& [4 b使用命令:sudo vim /etc/systemd/system/syncthing@ubuntu.service,@后填写用户名。
& G8 s5 l3 ~+ S* s/ W; F
5 t# _* Z1 ?# B下图红框中的路径要修改为你自己对应的,也就是刚才查看的路径。下图绿框的syncthing是表示文件名。4 H: y3 |) B3 J' ~  t( R/ ]
. B/ j9 U* N) [4 O

( r# C2 m) L$ a6 G9 K! m, t文件内容如下:0 m/ U5 X  ^) h4 [. t( F
' |# @7 Y/ M. }2 Y% v  P
[Unit]; g; @+ u4 a0 X$ Q& s8 X& Q
Description=Syncthing - Open Source Continuous File Synchronization for %I
, A" ]7 E, o2 e+ i' l: kDocumentation=man:syncthing(1), r$ e( T, M# w
After=network.target
' ~* m/ T; w+ R. s( BStartLimitIntervalSec=60- Z3 Z7 V; X0 p" M' _) L2 d
StartLimitBurst=4
$ L  Q# I. c# U
1 I4 H9 R- t7 n6 U4 X[Service]
, E: e: X3 o+ M3 `% z) x( fUser=%i- y8 h! p: Y- P0 w) t
ExecStart=/home/ubuntu/syncthing/syncthing serve --no-browser --no-restart --logflags=0 --gui-address=0.0.0.0:8384
: ^& i2 R3 V) Y# U8 yRestart=on-failure. t# O1 q/ @/ ^+ P
RestartSec=1
( v+ b( e: o- l- f8 ]4 XSuccessExitStatus=3 45 u% k: s- ]% {- y0 d' H
RestartForceExitStatus=3 4
& \9 m& I1 w7 c( [6 T1 d' A! b1 Y8 z( F) m3 g2 H, K( t* }& ]
# Hardening! a" `7 z( [# J
ProtectSystem=full) f& M9 U# w0 I  A9 b0 K
PrivateTmp=true6 X1 H. {7 t  W* M: m
SystemCallArchitectures=native
4 w/ m) ?# {7 p* UMemoryDenyWriteExecute=true2 f( _: U$ @8 u/ I
NoNewPrivileges=true9 a- w# T) _. G6 f( \

5 w3 g+ ]5 H, k5 n3 X+ J( j# Elevated permissions to sync ownership (disabled by default),) \$ S5 l, m. j. C$ ^# g6 j/ M' b1 V
# see https://docs.syncthing.net/advanced/folder-sync-ownership7 Y% r: R- q- b. z; x! @
#AmbientCapabilities=CAP_CHOWN CAP_FOWNER
, |6 U9 Z* R3 L# q3 `+ \; J& P0 U8 l* G; j
[Install]
1 o6 W3 J( y% Q4 w8 \- wWantedBy=multi-user.target
- E0 A2 w' R# v! f" E1
. q1 t5 g3 N4 e5 @7 C2# m. [) T4 G+ I3 W5 \/ {1 N
38 g' i. F. K& C) ^8 ~
42 ^- O# d* }" d+ f
56 R& j1 g3 l$ o9 T' y
6
, c7 J) s: Q( f- Q& Q& F1 w7
' [$ p/ W4 d1 W1 `% F( e0 ^84 U4 J0 O' a( c# u
9
& l/ L9 i1 X6 `* y, r+ G10
; Q' e  y* h- T8 w; Y113 m; X+ u6 d* }6 X
12
( s# `/ a8 B! d  `. y; }. h" J$ r13
5 Y/ ^7 C+ s0 O8 {& [# y  S, j) D& h" @145 L6 n2 t- l& b& U
15+ y1 l7 W4 \% J
16% `% G- r7 u8 g( e2 ]6 N
17
% k3 j! u7 @- a. F" R9 s' T2 }6 f18
' j' q/ ]1 b( ]& v* N: f6 ?19
, R$ A" p* `, [1 k0 Q204 j) y* E$ N- g; f3 A+ }* ~
21
: M) E$ f2 |5 s' i) G22
% n6 [& L6 y  A, k. x23
4 [6 U3 H8 y4 _4 H  w. {: K24. {4 Z) _  a* w6 `* l
25
6 e) C- k1 [) X26% i9 _$ V6 B9 }0 C+ T
27
' N3 x0 J/ S/ D28
) T+ I% c/ I( |) n& x提升文件的权限。8 c0 @; X9 t7 \, d9 b
8 |' E7 o, @, C# Y
sudo chmod +x /etc/systemd/system/syncthing@ubuntu.service
: a( M  N/ d, ?- x, @1' z+ w# i1 S3 u6 U( o! N

5 ?# G' ?, ^/ D( E9 r! m3 S
  \" G# X! V: Y接下来可以使用这些命令来操作了。' s+ P: z, a# w% o* g" S

0 `7 f1 L: i8 Y" r% C# 启动syncthing@ubuntu
+ n! H$ z# ?) B. T3 {sudo systemctl start syncthing@ubuntu
2 \( s; E  [7 ?/ C# 开机自动启动syncthing@ubuntu
( f1 U3 B$ O7 i5 m3 Q2 ^. O6 w2 qsudo systemctl enable syncthing@ubuntu/ P( F  \0 H5 h# X& l  H- h; n5 `
# 重启syncthing@ubuntu
0 X: t( z0 S9 [) O5 j& ~6 msudo systemctl restart syncthing@ubuntu
8 q7 V; ]# I8 \# 停止syncthing@ubuntu
4 L3 ]- j3 D+ Psudo systemctl stop syncthing@ubuntu
- r9 Y0 L3 l. O8 k4 r# 查看syncthing@ubuntu状态
+ L5 U* f5 P# c. K, Q& [9 tsudo systemctl status syncthing@ubuntu8 [. Y6 t4 m3 e  ?
————————————————
- S) B, M& F7 }( r1 k6 u8 q6 ~' L& i
' q7 j  \+ Z6 C3 _! M% d0 K- |6 o2 N. @* U+ B; a' O" `

1 n; h6 e2 r0 d7 ?
青浦海洋数码电脑城
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2013 Comsenz Inc.Powered by Discuz!X3.4( 沪ICP备18024137号 )
快速回复 返回顶部 返回列表