为什么80%的码农都做不了架构师?>>>
BitTorrent Sync是一个简单的文件传输工具,他使用p2p协议传输文件,以最大的安全度、网络带宽、存储能力传输文件。文件通过p2p协议传输,因此每一个链接上的电脑都同时是客户端和服务端。设备在同步时是直接相连的,你可以通过udp、nat转换、upnp端口映射、中继服务器等建立链接。如果你的网络是本地网络,BitTorrent Sync在同步时不会使用外部网络。所有在设备之间的传输都是经过AES加密的。
BitTorrent Sync可以在windows、mac、linux上使用,本文主要是在linux上使用,在linux平台上BitTorrent Sync是很好安装的,从官方根据平台类型下载好你需要的tar包之后,在linux服务器上解压即可看到一个btsync二进制文件,执行./btsync即可运行。BitTorrent Sync自带了一个WEB UI界面,你可以通过你本机的ip:8888/gui来访问,端口都是可以修改的,在第一次访问UI界面时是不需要认证的,不过还是建议设置密码认证。不过我还是喜欢CLI的管理方式。执行./btsync --help即可看到CLI的使用方式。
BitTorrent Sync还有一个用户借口,通过它你可以知道链接了哪些设备、那个目录在同步、传输速度、上传/下载历史、性能等等。这些数据在WEB UI都有直观的显示,但是在CLI却没有相关信息的显示,不过在默认文件里面有个sql库,估计是存在这里面的。
在mac和windows都有图形化的界面,里面可以设置一些高级属性,虽然linux也有WEB UI,但是里面没有设置高级属性的地方。linux的高级属性可以写在配置文件中。但是默认的包解压后并没有配置文件的例子,通过./btsync --dump-sample-config可以打印出一个自带的简单配置文件,配置文件时json格式的。以下的高级参数并没有在简单配置文件中显示,不过你可以加入他们,后面跟有默认值。
高级参数有如下:
disk_low_priority:true 设置在磁盘上操作文件的优先级,如果设置为false,在同步文件时读写文件将会采用最高速度和优先级,不过这样会影响其他应用的性能。
folder_rescan_interval:600 设置扫描目录的时间间隔,单位为秒
lan_encrypt_data:true 如果设置为ture,则在本地网络传输时会采用加密传输。
lan_use_tcp:false 如果设置为ture,在本地网络同步会采用tcp传输,而不是采用udp传输。注意:在LAN中禁止加密并采用tcp传输,会增加传输速度。
rate_limit_local_peers:false 申请在本地网络的peers直接限速传输,默认没有在LAN里面限速
send_buf_size:5 在发送文件时可以使用的发送缓存,可以设置1~100M
recv_buf_size:5 在接收文件时可以使用的接收缓存,可以设置1~100M
sync_max_time_diff:600 同步的设备之间的时间差别
sync_trash_ttl:30 设置多少天之后自动删除.SyncArchive目录中的文件
max_file_size_diff_for_patching:1000
max_file_size_for_versioning:1000 版本控制的一个参数,不了解...
BitTorrent Sync还支持文件过滤,如果你有一些文件不想被同步,你可以使用.SyncIgnore,.SyncIgnore是一个UTF-8编码的txt文件,里面你可以定义单个文件,路径,以及规则,他支持简单的“?”和“*”匹配。
下面开始使用(10.20.112.26)
1 首先就是去官网下载tar包,如果连官网都懒得去,可以用下面的方法
add-apt-repository ppa:tuxpoldo/btsync
aptitude update
aptitude install btsync
下载好btsync_glibc23_x64.tar.gz后,在linux下面直接解压,会看到一个btsync二进制文件和LICENSE.TXT文件,除此之外没什么了,很简单啊...
2 启动btsync
直接执行./btsync即可
3 先看看WEB UI界面,在浏览器中输入10.20.112.26:8888/gui
界面看起来简单清爽,不过没有在win/mac下的配置项多啊,中文支持不错,点击preferences可设置
既然在linux下使用,CLI肯定是首选项,所以下面主要介绍通过配置文件管理BitTorrent Sync
4 BitTorrent Sync的tar包中默认没有配置文件的,不过可以打印出内部自带的简单配置文件,./btsync --dump-sample-config
{
#定义设备名称,一般写主机名或者IP
"device_name": "My Sync Device",
#是使用随机端口还是固定端口,0表示随机
"listening_port" : 0,
#storage_path包含一些运行时产生的状态文件,如果没有定义,则会在二进制命令运行的目录下产生一个.sync隐藏目录
"storage_path" : "/home/user/.sync",
#定义pid文件的路径
"pid_file" : "/var/run/btsync/btsync.pid",
#是否检查文件更新
"check_for_updates" : true,
#使用UPnP进行端口映射
"use_upnp" : true,
#是否对上传/下载进行限速,0表示不限速
"download_limit" : 0,
"upload_limit" : 0,
"webui" :
{
#如果去掉listen项,则表示禁用WEB UI
"listen" : "0.0.0.0:8888",
#如果去掉login/password,则表示不用验证
"login" : "admin",
"password" : "password"
},
#如果你在配置文件中设置了shared folders,则WEB UI中的会被禁止,配置文件中的会覆盖UI中设置的。
"shared_folders" :
[
{
#你的secret,可以使用--generate-secret参数生成
"secret" : "MY_SECRET_1",
#同步的目录
"dir" : "/home/user/bittorrent/sync_test",
#是否使用中继服务器
"use_relay_server" : true,
#是否使用tracker服务器
"use_tracker" : true,
#是否使用dht
"use_dht" : false,
#
"search_lan" : true,
#是否自动删除文件
"use_sync_trash" : true,
#设置不用查找就可以直接连接的机器
"known_hosts" :
[
"192.168.1.2:44444"
]
}
]
}
5 开始试验(10.20.112.26/27)
10.20.112.26的配置文件btsync.conf如下(server):
{
"device_name": "10.20.112.26",
"listening_port" : 9999,
"storage_path" : "/opt/btsync_server/file",
"pid_file" : "/opt/btsync_server/file/btsync.pid",
"check_for_updates" : true,
"use_upnp" : false,
"download_limit" : 0,
"upload_limit" : 0,
"folder_rescan_interval" : 5,
"lan_encrypt_data" : false,
"lan_use_tcp" : true,
"webui" :
{
},
"shared_folders" :
[
{
"secret" : "AXZ46VPZZ7PRVHPPFBHEO7JEXFFVABC4J",
"dir" : "/opt/data",
"use_relay_server" : true,
"use_tracker" : true,
"use_dht" : false,
"search_lan" : true,
"use_sync_trash" : true
}
]
}
执行./btsync --config ./btsync.conf即可启动
{
"device_name": "10.20.112.27",
"listening_port" : 9999,
"storage_path" : "/opt/btsync_client/file",
"pid_file" : "/opt/btsync_client/file/btsync.pid",
"check_for_updates" : true,
"use_upnp" : false,
"download_limit" : 0,
"upload_limit" : 0,
"folder_rescan_interval" : 5,
"lan_encrypt_data" : false,
"lan_use_tcp" : true,
"webui" :
{
},
"shared_folders" :
[
{
"secret" : "AXZ46VPZZ7PRVHPPFBHEO7JEXFFVABC4J",
"dir" : "/opt/data",
"use_relay_server" : true,
"use_tracker" : true,
"use_dht" : false,
"search_lan" : true,
"use_sync_trash" : true,
"known_hosts" :
[
"10.20.112.26:9999"
]
}
]
}
执行./btsync --config ./btsync.conf即可启动
笔记本实在是开不起第三台虚拟机了,只能用这两台演示怎么使用,完全显示不出BT的威力啊,不过本文就是讲解怎么在linux利用BT协议发送文件,如果有大量的机器要发送文件,BT协议还是很不错的。