扫一扫,微信登陆

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

搜索
查看: 32|回复: 0

网络文件同步使用说明

[复制链接]

352

主题

379

帖子

2159

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2159
QQ
发表于 5 天前 | 显示全部楼层 |阅读模式
出处:https://blog.csdn.net/weixin_429 ... 21699-null-null.142^v100^pc_search_result_base8&utm_term=Syncthing&spm=1018.2226.3001.4187
2 d& q5 D0 @; \* \2 ?" y3 w" ?! Y4 u  n
/ t# u& r( B+ B% ]7 ]5 ]4 r  b, P
简介9 l! h4 E. o( h6 H: b# Y4 C
Syncthing是一款开源的文件同步工具,可以通过本地网络或互联网实现多台设备之间的文件同步。与其他同步工具不同,Syncthing强调隐私和安全,确保用户的数据始终处于用户的控制之下。
1 o$ H$ ~& S6 v  r6 _3 m, b* o2 L- J2 s4 m- N1 U0 B
功能与特点
$ J5 ~* P6 \5 d4 r  c: O开源软件:
0 N6 q1 z! [! X/ s0 _$ r1 ]* ]! U" j) `# p
Syncthing是完全开源的,源代码托管在GitHub上,任何人都可以查看、审查和贡献代码。这种透明性增强了用户对软件安全性的信任。
- a, ^) _& n+ _# P3 k去中心化:
/ b0 u% ^- B! B/ [2 d8 M1 ?- @2 O7 G0 @4 K1 p8 o
Syncthing采用P2P(点对点)架构,没有中央服务器,所有数据传输直接在设备之间进行。这不仅提高了数据传输速度,还消除了对第三方服务器的依赖。/ M* x; I7 H) R+ c. {' M
跨平台支持:
3 b9 j" C+ [4 K. A2 z+ h5 ^1 l  S# G& g5 Q0 B+ }2 A2 r
Syncthing支持多种操作系统,包括Windows、macOS、Linux、BSD、Solaris、Android等,能够满足不同用户的需求。
2 Z3 M* K/ I0 ^, I安全性:3 Z+ P9 v9 p! c
# n; J! J0 Y* y
数据在传输过程中使用TLS加密,确保通信的安全性。此外,每个节点都有唯一的设备ID,通过设备ID进行认证和连接,防止未经授权的设备访问。
" G! ?6 n) \2 ^实时同步:- c( v+ s$ L* q
5 w8 A" r; F7 j5 Q5 f
文件修改后会立即触发同步操作,实现实时更新。Syncthing能够检测文件的变化,并迅速同步到其他设备上。8 V% w4 T. z5 ~! u) r) Q2 W! v5 N: T
版本控制:
+ K+ N$ K# b% ?  {. z5 ~; O) c
6 l/ k  n, t5 |3 _Syncthing支持文件版本控制,可以保留多个文件版本,方便用户在需要时恢复到之前的版本。
! p, _! k! A6 F" u- @9 n* X% u2 R配置灵活:0 F4 b. t* B0 a% j5 z) R4 c

" z* y. M+ `( v( QSyncthing提供了丰富的配置选项,用户可以根据需要设置同步目录、同步频率、带宽限制等参数,满足不同的使用场景。1 o: v$ D, h* a% t  H- B$ c
简单易用:9 H  \5 v! L3 ]( D% S. B* h6 c

8 V2 O% w% X; i" z+ a通过一个友好的Web GUI(图形用户界面),用户可以轻松管理和监控同步状态,进行配置修改。2 h* c4 L( a) W0 ~! D4 r: c
优点
! y, R. K% g6 K* a& k4 j$ g6 B隐私保护:" f/ S: w5 j& w7 q8 Y; \' M

- N" j2 B. E9 K5 j. q因为不依赖于任何中央服务器,用户的数据不会存储在第三方服务器上,完全在用户的掌控之中,极大地保护了隐私。$ Y) M* V% ^) Y0 p' e! H
高效的带宽利用:* B* ~. r3 o  r2 k7 D% L, q
/ p/ X) t3 I( M* g" }
Syncthing在同步过程中只传输更改的部分(增量同步),而不是整个文件,从而提高了带宽利用率,节省了传输时间和资源。
1 C7 X8 v( S1 P, G+ d+ j安全性高:7 N& M- N6 G! X
% }$ x: O3 ?- z0 g6 s
使用TLS加密传输数据,设备之间的通信经过认证,防止中间人攻击和未经授权的访问。
$ z8 _7 }/ F4 Y' s无缝集成:" K- v' g4 a. {! W3 U! y

: p6 ~7 \6 L2 E7 k) ?6 KSyncthing可以在多种操作系统上运行,并且支持多设备同步,用户可以轻松地在家用电脑、工作电脑、手机等多个设备之间同步文件。
9 ?( }2 O3 A( J社区支持:0 \& M+ E- S7 V" W
' P: N# M) q( W) w# J+ g
作为开源项目,Syncthing拥有活跃的社区支持,用户可以从社区获得帮助和建议,及时解决使用过程中遇到的问题。
. F/ J8 a/ D4 {+ Q定制化:
5 j  k( ?7 j, U9 P% H$ ?: D
% r8 P. o* B# w+ V- [用户可以根据自己的需求进行高度定制,包括选择需要同步的文件夹、设置不同的同步策略和频率、限制带宽使用等。
- m' G6 X/ e# R9 ?可靠性:
& ^# B* O+ @7 C& M. y
( ~/ U  E7 |4 Y2 s* m" a* wSyncthing的设计使其在网络断开后能够自动恢复同步操作,并且支持自动解决同步冲突,确保数据的一致性和可靠性。
6 f9 E8 v+ B. ]- I1 O" e; F% w安装教程
' {- v9 ~7 P) j3 ^7 a5 i* Y* q注:博主安装过该工具,下面的安装教程,可能会出现一点点区别,不过按照以下操作进行搭建是可以成功的。( K: F( U: p4 @6 ^2 B2 z2 G3 Z4 U
7 x' L, B- p3 E  D2 n) w& y
官方下载地址:https://syncthing.net/downloads/( H5 ~" d# A- {, l
选择对应的版本进行下载。) R8 ?0 v) o; j% u

; d, }$ A  `  D本文采用两个同步平台为Windows和Ubuntu。可以通过链接:https://wwt.lanzoue.com/b0fomam7g下载本文所对应的安装包。下载密码:hx90* k) i2 h, g& G7 J6 n; F

3 C. l8 W% ^4 p' U' R5 `( M& b两台电脑能实现文件同步的前提是两台电脑的网络能够相互访问。如果一台电脑在内网中,一台在有公网IP的服务器上。可以用有公网IP的服务器搭建一个frp内网穿透工具,通过内网穿透后,就可以实现两台电脑进行网络通信了。1 z+ Z+ `8 @1 ~: C
0 g+ `! B. }' E! Z- B: T
Windows安装
1 u6 k+ g. x4 g8 Q: b$ \. `解压安装包,然后双击syncthing.exe打开。7 }1 ^" |; w3 {% T3 R  a9 y

& S2 I* B! _. W出现这个界面后,可以看见web界面访问地址。初次安装应该会直接在浏览器中打开该地址,然后有一个提示对话框,匿名报告相关的,可以选择否。4 I8 I3 s8 I" Q( \+ Q6 l# ]& ?8 {

# ^9 I. |* O# F7 i' J! t7 W能出现该界面就说明安装成功了。先不用管界面是否完全一样,下面会介绍如何进行配置。
, g6 [/ {- B. A' N) ?4 v+ m9 o4 N2 Y5 ?
Ubuntu安装  }9 h. l/ S% s7 U" n% E4 B
将Linux版的文件上传到服务器,这里使用xshell配合xftp进行操作。1 l; M; o  E! Z5 E& `
在xshell中连接成功后,可以点上面图标。3 J0 z+ c4 f: A$ g/ R4 S
7 U+ x' B& @4 z" K/ k
接下来就可以将文件拖拽到Ubuntu中了。
4 _# r' y& O9 D/ a0 A
; v# d& M5 b, A% b! W: `
! w1 }; z* S: Z, `# |' R* v接下来解压文件tar -zxf syncthing-linux-amd64-v1.27.9.tar.gz。" P) K/ O  ^& i' W8 Y% d' W

& B( i! J4 B: k5 [这里可以修改文件夹的名称。用mv syncthing-linux-amd64-v1.27.9 syncthing就可以。博主前面安装过了,这点就不修改了。
, F, ]$ \# G) F- B* m进入syncthing-linux-amd64-v1.27.9文件夹。使用./syncthing serve就可以启动。
. z; ~( y. c7 P6 p  s4 r6 W0 \& K. |+ P
这时如果是图形化的Ubuntu,就可以在Ubuntu浏览器中打开http://127.0.0.1:8384/。博主采用的是腾讯云的vps,直接用ip访问不了。这里需要进行一步操作。; _$ k. H! x3 o' e+ f
' S; o2 R! ^& D8 `& W! M; L: a4 D, T
配置远程ip访问
( H4 h6 S! P$ d, [0 C先Ctrl + C停掉服务。# S; @6 V# {6 D8 |; E
查看官方文档后,使用命令./syncthing serve --gui-address=0.0.0.0:8384配置。
4 b7 g6 x) w' O9 G: Q
# K# o, [" h( [# w3 @8 |* }这样就可以远程通过ip访问了,不过你的服务器防火墙需要放行端口。3 d$ w7 b- g, f& m
6 h+ ^) X  T, I! |+ K0 @6 S
) f* ^4 S# O. r  W# L+ ]/ i
配置同步文件夹; S; Y- @( I5 [' Y
这里需要用到工具的ID,先去服务端查看,启动服务的时候就会显示,现在可以通过web界面进行查看。客户端同理。! X6 \3 e) A* @. I
$ s5 n& Y/ S( _9 l' W
刚才复制的是服务端的ID,那么现在就打开客户端的web管理界面。
/ @. n* t! F* C$ h8 r1 Y
+ @4 }* E+ O* s' k' [: L2 e& M
如果只是局域网操作,这里直接保存即可。
- v1 ~+ H; M. ^如果想公网访问,就可以内网穿透工具。在服务器搭建内网穿透工具,可以参考这篇文章:https://blog.csdn.net/weixin_42951763/article/details/140420245$ E! j8 z: D6 w' w5 H6 o
只需要将链接中Windows客户端的配置修改即可,这里给出一个参考。
6 n7 J6 \, e: }. _1 v0 l3 t
9 x1 B. d. N8 a- g+ k6 N* r& w在启动的时候可以看见tcp使用的默认端口。
5 i8 I; A: j( l3 Q/ i  z$ q& I
/ _8 t9 c1 a- n
6 W6 A: O" }7 l1 W8 n# i% @/ }! E配置Ubuntu服务端。打开服务端的web界面。0 `1 k: `/ h* q. C0 ?( k
& m3 L# \3 ~. D. ?  I# B
在高级设置中,配置一下地址。6 U. M& _1 b; K4 E

- i2 G/ z/ B4 N  ]3 |6 a1 {* G这里再解释一下这个地址。* m) a6 I" l7 y, J$ U
Windows中的IP不是公网IP,所以Ubuntu服务端不能直接访问到Windows这个客户端。因此才有了frp内网穿透,把Windows映射到公网中。通过映射后的公网IP加上端口,就可以访问到Windows这个内网中的客户端了。+ y8 b, B: r: G% x, J4 h

+ f. d' h' z; K. j7 E  z2 ]; b接下来就可以创建共享的文件夹了。# {" h  o! K! A
先在Windows这边创建。- J0 w" ~/ S9 R- _, ~

1 {7 h  z3 i, f! a) ~9 p0 z* ]6 W
9 f' A! N) l% F文件夹共享给Ubuntu。; ^5 y! s8 c. v. U
" O" R+ P. \) g
文件夹版本控制。官方文档的文件版本控制介绍。
9 a1 w/ `( G4 `9 v& c) D. F" c8 j2 b1 g' ]( e% n

8 S% {6 T. h% Q4 @3 V到这点Windows的就配置好了。
. b' N$ y& ?0 @! U: C" Y0 c这时去到服务端Ubuntu的web界面。
3 S3 m! C- \( P% }; r
$ @! X# k( V( y( b5 T1 L) b可以看见出现了一个新文件夹,这时点击添加即可。如果没有出现,可能的原因是服务端这边还没有与Windows进行连接。再次检查一下远程设备是否已经同步完成。
; J* `/ e5 B* {% u4 E8 }: b/ U" A7 E
这里选择共享给Windows,这样就可以把Ubuntu变化后的文件也同步到Windows里面。
7 u; q, o3 m9 _6 M' }- U4 o& o5 \* j0 X# |
这样就实现了简单的双向同步文件。
$ u  Z$ G( J, C/ l( f
: Q5 _) M# d+ C5 vSyncthing开机自启
5 Y7 Q% t4 R8 q3 {& l/ FWindows
3 N6 c3 k: d! i3 k$ x0 V# X利用bat文件来实现。
! {( S) }* V' W" g/ t7 f在Syncthing的文件根目录中新建一个bat文件,放在这里是方便管理,也可以放在其他地方。% r$ z3 n3 O# D! v% G  y& {
) V4 u$ D: ~$ a5 w
bat文件内容如下:
+ W7 i+ `7 `: ~1 @
3 a  P6 G" m+ s( |; H! e( {8 Q@echo off
8 o' E  q6 ~, u3 ~9 Q) N" |  F' q2 u4 e/ K, K
if "%1"=="h" goto begin
) q/ F: j1 P4 C  f, T9 Z9 s6 ~
' w# A3 p; e' a! R* J; n' Vstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
2 P8 I* g4 i: i7 C3 M! H  C/ k; L0 A
:begin  v6 ?" ~  k0 t& Y! \

1 C7 ]% g1 a2 g' u) mcd /d D:\syncthing && syncthing.exe serve --no-browser --no-restart --logflags=0# i4 S5 b6 l/ B( }
1
; \4 l. K' X9 P2
7 p3 J8 ~0 m4 t- O37 q% t# P6 a& N/ J. |0 s
4$ g7 q+ C7 E0 Z% ?7 D! U% B
5
( b, S/ n/ `# r: k6 u/ b' _6. F. j2 b" k& V, n4 K" K
70 p6 S: q; v6 k' c3 \0 f# v
8% G, k+ _/ R0 q) J5 }+ f3 H% O+ u
9
% N; e6 n, d3 f+ w, o只需要修改下图红框中的路径为自己的路径即可。
1 Q) ]( b6 c8 p& Y7 N  `: ~8 M3 m3 ~% T6 `7 ^+ X
/ E6 R8 k/ f+ M
然后保存退出。在bat文件右键创建快捷方式。1 s# e( Y- e# D6 @- t2 r) R
! O  t6 T" A: r
使用win + R打开运行对话框,输入:shell:startup回车。将刚才创建的快捷方式移动到这个目录里面。- d: t+ H  n3 T# h  _1 V) q; E
0 ^* _: y6 p; Z; C$ P: ~0 v$ J- \( w
这样就可以了。2 J& r$ Y4 E, a5 Y0 [) l9 o' B

) f. K6 i8 c8 e3 c* S: l7 @# dUbuntu
/ @) X2 b" ^! J: |* Y% Z查看syncthing的目录,然后记录一下这个目录。2 w: X8 z2 ^1 [0 F
. l8 g( G5 Y2 J7 }8 O1 V
使用命令:sudo vim /etc/systemd/system/syncthing@ubuntu.service,@后填写用户名。" f( t2 P; u# O+ b; x

; }# c( h+ @7 g/ s5 A9 J下图红框中的路径要修改为你自己对应的,也就是刚才查看的路径。下图绿框的syncthing是表示文件名。/ o. o3 h/ w9 J0 V7 b
6 n! ]3 k/ }$ t1 {7 s0 x- V( G

4 o) L. W7 g( W' {0 ^$ A7 X文件内容如下:
* h) F0 v  v: h# _! V, Q
& ?1 E. E2 w; Y% o$ [$ T[Unit]
) ^& T- J( R5 {/ zDescription=Syncthing - Open Source Continuous File Synchronization for %I
( G' T: x1 k7 ^. n0 n2 SDocumentation=man:syncthing(1)
( `" G0 F% ?9 p6 s) p; MAfter=network.target
2 F' E! v/ E; o5 E; d: gStartLimitIntervalSec=60
  b8 h! A2 g" z3 O4 K6 x  YStartLimitBurst=4
5 Z: q, c; ^4 d: ]) j' u  S' V" U( y; l- ^
[Service]
1 Q( e- j' i+ |# |" ^User=%i3 k1 Y  y: _1 E1 a" I: N+ c) i
ExecStart=/home/ubuntu/syncthing/syncthing serve --no-browser --no-restart --logflags=0 --gui-address=0.0.0.0:8384" n8 R% Z- Y0 P7 I" i; l
Restart=on-failure& U# o0 `" d: ^4 s! y; }. G, T
RestartSec=1, e" w# C1 H2 V: K! k; D
SuccessExitStatus=3 4
' c; Z* h- _; n- Q3 N4 I5 wRestartForceExitStatus=3 4
/ S9 n7 ]5 {$ ~0 W4 P  E# h; q! v& F9 [  R: K$ S8 t
# Hardening# n3 i+ K+ d5 \% O
ProtectSystem=full  A1 u2 P* s, |) a1 P2 x  C2 x
PrivateTmp=true9 Y3 _* M* N: E5 P% ], o
SystemCallArchitectures=native
/ Z6 w+ M; ^- [0 f# Y% wMemoryDenyWriteExecute=true
: _, o6 ~* @2 _NoNewPrivileges=true4 L! Q# V9 Y% s  I0 ^
% k# h3 R2 S. o* C  H& W9 t
# Elevated permissions to sync ownership (disabled by default),
% H3 [6 K8 N% \; t; u# see https://docs.syncthing.net/advanced/folder-sync-ownership' }/ X) {' O/ U7 ^
#AmbientCapabilities=CAP_CHOWN CAP_FOWNER
$ u# h3 h6 }# A5 N7 ~' L+ n; M
* R0 J: m( x+ {# j/ i& v/ X$ ?+ g( O[Install]
6 o, Q3 o  o. u, J7 \7 J, lWantedBy=multi-user.target
. g( u9 D. j1 C/ X* T) A10 I8 d/ o0 T* I5 T6 u5 u0 R
2
; @- C" `4 R: b9 j( A/ y30 j, O( `3 i2 s( c- {5 l
4- ^* z0 p0 Z) w4 G) K
53 s1 C# I8 D$ E* J2 h+ o
6
$ O( H9 n9 m& ^1 b! u* v7$ }& M$ F, ^* ?2 I+ t( b/ b
8
7 ?3 J% n! y8 B+ Y# o  B9
, d+ l* V; x0 N6 J5 h1 q  u& j10
' y- b' ?" l" ?+ F; h8 m5 D! L11% Y5 B6 o4 Z% V: N0 D% D: X. F* F
12
6 o" p4 A! @7 G$ d- A13! s) E2 }9 {5 p/ y1 v" C7 m
14
2 y! P: h" X9 A5 e# l  O8 n15
  e' Y- I: y8 _0 }4 d16
0 y. m' {) `. y; F) F) i; W7 J17/ x* ?1 x* h9 S
18/ ], }; K/ g& k* B/ G3 `9 i: F
19! o7 b0 M7 Y# {
20
( s: D% X0 i- U+ X/ {7 L21
9 p, M  i- n7 A7 q: M22
0 o. c9 l% v) A236 y1 d% @, f: W# X
24
- ^: T' E# r' d" B( ?2 ]/ k25  t( w% ~6 B  {, |* n* b
26: v+ n- l, p- ~
276 s( [! Y  z' e9 O3 j
28! I7 K2 ~* s, P$ \7 l) ?) v( l
提升文件的权限。
$ ]4 J$ k" t& T5 [
  u4 _7 {+ G9 s9 W/ msudo chmod +x /etc/systemd/system/syncthing@ubuntu.service
8 Q  F5 [1 o9 f1
! ~  T* P0 L3 ^+ Q6 W
" w) Y- ^4 [! N& ]
" a/ A( Z$ n; n8 Z接下来可以使用这些命令来操作了。5 x0 f, X& U/ N7 Q( e) s# [$ x5 Q
% h' E  c7 l' M/ `9 `! \* T
# 启动syncthing@ubuntu* h# p; D' X) A4 P1 E, R2 b0 G
sudo systemctl start syncthing@ubuntu
& \8 T# B* g- y3 \# 开机自动启动syncthing@ubuntu
% g6 X/ V" U2 G4 F4 Bsudo systemctl enable syncthing@ubuntu" }- L* I8 u, d* z1 n* U% [
# 重启syncthing@ubuntu
& I9 |$ k) e" J7 A1 s, ?sudo systemctl restart syncthing@ubuntu
& y0 ]! r1 e5 z/ a% b, Z0 }5 p# 停止syncthing@ubuntu8 t& ^. {) B: ]) J
sudo systemctl stop syncthing@ubuntu
. i" F2 _: z# J  |3 P" ^# 查看syncthing@ubuntu状态, e5 S2 K* Z5 a6 l: L3 [  H1 U: y- L
sudo systemctl status syncthing@ubuntu# q' d: @6 n2 [( c& X
————————————————% z2 c7 m! a1 n% f+ w( \5 M. C8 P

: ^% W- J) A% `- V1 {4 W. x* m0 `
7 b+ }7 q; F- H$ w  [4 N1 K& {! t/ i
青浦海洋数码电脑城
回复

使用道具 举报

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

本版积分规则

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