syncthing-faq.7 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. .\" Man page generated from reStructuredText.
  2. .
  3. .TH "SYNCTHING-FAQ" "7" "August 13, 2015" "v0.11" "Syncthing"
  4. .SH NAME
  5. syncthing-faq \- Frequently Asked Questions
  6. .
  7. .nr rst2man-indent-level 0
  8. .
  9. .de1 rstReportMargin
  10. \\$1 \\n[an-margin]
  11. level \\n[rst2man-indent-level]
  12. level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
  13. -
  14. \\n[rst2man-indent0]
  15. \\n[rst2man-indent1]
  16. \\n[rst2man-indent2]
  17. ..
  18. .de1 INDENT
  19. .\" .rstReportMargin pre:
  20. . RS \\$1
  21. . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
  22. . nr rst2man-indent-level +1
  23. .\" .rstReportMargin post:
  24. ..
  25. .de UNINDENT
  26. . RE
  27. .\" indent \\n[an-margin]
  28. .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
  29. .nr rst2man-indent-level -1
  30. .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
  31. .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
  32. ..
  33. .SH GENERAL
  34. .SS What is Syncthing?
  35. .sp
  36. Syncthing is an application that lets you synchronize your files across multiple
  37. devices. This means the creation, modification or deletion of files on one
  38. machine will automatically be replicated to your other devices. We believe your
  39. data is your data alone and you deserve to choose where it is stored. Therefore
  40. Syncthing does not upload your data to the cloud but exchanges your data across
  41. your machines as soon as they are online at the same time.
  42. .SS Is it "syncthing", "Syncthing" or "SyncThing"?
  43. .sp
  44. It\(aqs \fBSyncthing\fP, although the command and source repository is spelled
  45. \fBsyncthing\fP so it may be referred to in that way as well. It\(aqs definitely not
  46. SyncThing, even though the abbreviation \fBst\fP is used in some
  47. circumstances and file names.
  48. .SS How does Syncthing differ from BitTorrent Sync?
  49. .sp
  50. The two are different and not related. Syncthing and BitTorrent Sync accomplish
  51. some of the same things, namely syncing files between two or more computers.
  52. .sp
  53. BitTorrent Sync by BitTorrent, Inc is a proprietary peer\-to\-peer file
  54. synchronization tool available for Windows, Mac, Linux, Android, iOS, Windows
  55. Phone, Amazon Kindle Fire and BSD. [1] Syncthing is an open source file
  56. synchronization tool.
  57. .sp
  58. Syncthing uses an open and documented protocol, and likewise the security
  59. mechanisms in use are well defined and visible in the source code. BitTorrent
  60. Sync uses an undocumented, closed protocol with unknown security properties.
  61. .IP [1] 5
  62. \fI\%http://en.wikipedia.org/wiki/BitTorrent_Sync\fP
  63. .SH USAGE
  64. .SS What things are synced?
  65. .sp
  66. The following things are \fIalways\fP synchronized:
  67. .INDENT 0.0
  68. .IP \(bu 2
  69. File Contents
  70. .IP \(bu 2
  71. File Modification Times
  72. .UNINDENT
  73. .sp
  74. The following may be synchronized or not, depending:
  75. .INDENT 0.0
  76. .IP \(bu 2
  77. File Permissions (When supported by file system. On Windows, only the
  78. read only bit is synchronized.)
  79. .IP \(bu 2
  80. Symbolic Links (When supported by the OS. On Windows Vista and up,
  81. requires administrator privileges. Links are synced as is and are not
  82. followed.)
  83. .UNINDENT
  84. .sp
  85. The following is \fInot\fP synchronized;
  86. .INDENT 0.0
  87. .IP \(bu 2
  88. File or Directory Owners and Groups (not preserved)
  89. .IP \(bu 2
  90. Directory Modification Times (not preserved)
  91. .IP \(bu 2
  92. Hard Links (followed, not preserved)
  93. .IP \(bu 2
  94. Extended Attributes, Resource Forks (not preserved)
  95. .IP \(bu 2
  96. Windows, POSIX or NFS ACLs (not preserved)
  97. .IP \(bu 2
  98. Devices, FIFOs, and Other Specials (ignored)
  99. .IP \(bu 2
  100. Sparse file sparseness (will become unsparse)
  101. .UNINDENT
  102. .SS Is synchronization fast?
  103. .sp
  104. Syncthing segments files into pieces, called blocks, to transfer data from one
  105. device to another. Therefore, multiple devices can share the synchronization
  106. load, in a similar way as the torrent protocol. The more devices you have online
  107. (and synchronized), the faster an additional device will receive the data
  108. because small blocks will be fetched from all devices in parallel.
  109. .sp
  110. Syncthing handles renaming files and updating their metadata in an efficient
  111. manner. This means that renaming a large file will not cause a retransmission of
  112. that file. Additionally, appending data to existing large files should be
  113. handled efficiently as well.
  114. .sp
  115. Temporary files are used to store partial data downloaded from other devices.
  116. They are automatically removed whenever a file transfer has been completed or
  117. after the configured amount of time which is set in the configuration file (24
  118. hours by default).
  119. .SS Should I keep my device IDs secret?
  120. .sp
  121. No. The IDs are not sensitive. Given a device ID it\(aqs possible to find the IP
  122. address for that node, if global discovery is enabled on it. Knowing the device
  123. ID doesn\(aqt help you actually establish a connection to that node or get a list
  124. of files, etc.
  125. .sp
  126. For a connection to be established, both nodes need to know about the other\(aqs
  127. device ID. It\(aqs not possible (in practice) to forge a device ID. (To forge a
  128. device ID you need to create a TLS certificate with that specific SHA\-256 hash.
  129. If you can do that, you can spoof any TLS certificate. The world is your
  130. oyster!)
  131. .sp
  132. \fBSEE ALSO:\fP
  133. .INDENT 0.0
  134. .INDENT 3.5
  135. device\-ids
  136. .UNINDENT
  137. .UNINDENT
  138. .SS What if there is a conflict?
  139. .sp
  140. Syncthing does recognize conflicts. When a file has been modified on two devices
  141. simultaneously, one of the files will be renamed to \fB<filename>.sync\-
  142. conflict\-<date>\-<time>.<ext>\fP\&. The device which has the larger value of the
  143. first 63 bits for his device ID will have his file marked as the conflicting
  144. file. Note that we only create \fBsync\-conflict\fP files when the actual content
  145. differs.
  146. .sp
  147. Beware that the \fB<filename>.sync\-conflict\-<date>\-<time>.<ext>\fP files are
  148. treated as normal files after they are created, so they are propagated between
  149. devices. We do this because the conflict is detected and resolved on one device,
  150. creating the \fBsync\-conflict\fP file, but it\(aqs just as much of a conflict
  151. everywhere else and we don\(aqt know which of the conflicting files is the "best"
  152. from the user point of view. Moreover, if there\(aqs something that automatically
  153. causes a conflict on change you\(aqll end up with \fBsync\-conflict\-...sync\-conflict
  154. \-...\-sync\-conflict\fP files.
  155. .SS How to configure multiple users on a single machine?
  156. .sp
  157. Each user should run their own Syncthing instance. Be aware that you might need
  158. to configure ports such that they do not overlap (see the config.xml).
  159. .SS Is Syncthing my ideal backup application?
  160. .sp
  161. No, Syncthing is not a backup application because all changes to your files
  162. (modification, deletion, etc) will be propagated to all your devices. You can
  163. enable versioning, but we encourage the use of other tools to keep your data
  164. safe from your (or our) mistakes.
  165. .SS Why is there no iOS client?
  166. .sp
  167. Alternative implementation Syncthing (using the Syncthing protocol) are being
  168. developed at this point in time to enable iOS support. Additionally, it seems
  169. that the next version of Go will support the darwin\-arm architecture such that
  170. we can compile the mainstream code for the iOS platform.
  171. .SS Why does it use so much CPU?
  172. .INDENT 0.0
  173. .IP 1. 3
  174. When new or changed files are detected, or Syncthing starts for the
  175. first time, your files are hashed using SHA\-256.
  176. .IP 2. 3
  177. Data that is sent over the network is first compressed and then
  178. encrypted using AES\-128. When receiving data, it must be decrypted
  179. and decompressed.
  180. .UNINDENT
  181. .sp
  182. Hashing, compression and encryption cost CPU time. Also, using the GUI causes a
  183. certain amount of CPU usage. Note however that once things are \fIin sync\fP CPU
  184. usage should be negligible.
  185. .SS How can I exclude files with brackets (\fB[]\fP) in the name?
  186. .sp
  187. The patterns in .stignore are glob patterns, where brackets are used to denote
  188. character ranges. That is, the pattern \fBq[abc]x\fP will match the files \fBqax\fP,
  189. \fBqbx\fP and \fBqcx\fP\&.
  190. .sp
  191. To match an actual file \fIcalled\fP \fBq[abc]x\fP the pattern needs to "escape" the
  192. brackets, like so: \fBq\e[abc\e]x\fP\&.
  193. .SS Why is the setup more complicated than BTSync?
  194. .sp
  195. Security over convenience. In Syncthing you have to setup both sides to connect
  196. two nodes. An attacker can\(aqt do much with a stolen node ID, because you have to
  197. add the node on the other side too. You have better control where your files are
  198. transferred.
  199. .SS How do I access the web GUI from another computer?
  200. .sp
  201. The default listening address is 127.0.0.1:8384, so you can only access the GUI
  202. from the same machine. Change the \fBGUI listen address\fP through the web UI from
  203. \fB127.0.0.1:8384\fP to \fB0.0.0.0:8384\fP or change the config.xml:
  204. .INDENT 0.0
  205. .INDENT 3.5
  206. .sp
  207. .nf
  208. .ft C
  209. <gui enabled="true" tls="false">
  210. <address>127.0.0.1:8384</address>
  211. .ft P
  212. .fi
  213. .UNINDENT
  214. .UNINDENT
  215. .sp
  216. to
  217. .INDENT 0.0
  218. .INDENT 3.5
  219. .sp
  220. .nf
  221. .ft C
  222. <gui enabled="true" tls="false">
  223. <address>0.0.0.0:8384</address>
  224. .ft P
  225. .fi
  226. .UNINDENT
  227. .UNINDENT
  228. .sp
  229. Then the GUI is accessible from everywhere. You should most likely set a
  230. password and enable HTTPS now. You can do this from inside the GUI.
  231. .sp
  232. If both your computers are Unixy (Linux, Mac, etc) You can also leave the GUI
  233. settings at default and use an ssh port forward to access it. For example,
  234. .INDENT 0.0
  235. .INDENT 3.5
  236. .sp
  237. .nf
  238. .ft C
  239. $ ssh \-L 9090:127.0.0.1:8384 [email protected]
  240. .ft P
  241. .fi
  242. .UNINDENT
  243. .UNINDENT
  244. .sp
  245. will log you into othercomputer.example.com, and present the \fIremote\fP Syncthing
  246. GUI on \fI\%http://localhost:9090\fP on your \fIlocal\fP computer. You should not open more
  247. than one Syncthing GUI in a single browser due to conflicting X\-CSRFTokens. Any
  248. modification will be rejected. See \fI\%issue #720\fP <\fBhttps://github.com/syncthing/syncthing/issues/720\fP> to work around this limitation.
  249. .sp
  250. The CSRF tokens are stored using cookies. Therefore, if you get the message
  251. \fBSyncthing seems to be experiencing a problem processing your request\fP, you
  252. should verify the cookie settings of your browser.
  253. .SS Why do I see Syncthing twice in task manager?
  254. .sp
  255. One process manages the other, to capture logs and manage restarts. This makes
  256. it easier to handle upgrades from within Syncthing itself, and also ensures that
  257. we get a nice log file to help us narrow down the cause for crashes and other
  258. bugs.
  259. .SS Where do Syncthing logs go to?
  260. .sp
  261. Syncthing logs to stdout by default. On Windows Syncthing by default also
  262. creates \fBsyncthing.log\fP in Syncthing\(aqs home directory (check \fB\-help\fP to see
  263. where that is).
  264. .SS How do I upgrade Syncthing?
  265. .INDENT 0.0
  266. .IP \(bu 2
  267. If automatic upgrades is enabled (which is the default), Syncthing will
  268. upgrade itself automatically within 24 hours of a new release.
  269. .IP \(bu 2
  270. The upgrade button appears in the web GUI when a new version has been released.
  271. Pressing it will perform an upgrade.
  272. .IP \(bu 2
  273. To force an upgrade from the command line, run \fBsyncthing \-upgrade\fP\&.
  274. .UNINDENT
  275. .sp
  276. Note that your system should have CA certificates installed which allow a secure
  277. connection to GitHub (e.g. FreeBSD requires \fBsudo pkg install ca_root_nss\fP).
  278. If \fBcurl\fP or \fBwget\fP works with normal HTTPS sites, then so should Syncthing.
  279. .SS Where do I find the latest release?
  280. .sp
  281. We release new versions through GitHub. The latest release is always found \fI\%on
  282. the release page\fP <\fBhttps://github.com/syncthing/syncthing/releases/latest\fP>\&.
  283. Unfortunately GitHub does not provide a single URL to automatically download the
  284. latest version. We suggest to use the GitHub API at
  285. \fI\%https://api.github.com/repos/syncthing/syncthing/releases/latest\fP and parsing the
  286. JSON response.
  287. .SH AUTHOR
  288. The Syncthing Authors
  289. .SH COPYRIGHT
  290. 2015, The Syncthing Authors
  291. .\" Generated by docutils manpage writer.
  292. .