Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save diyism/2bdb568d9780471acc470d2c69cab2d5 to your computer and use it in GitHub Desktop.
Save diyism/2bdb568d9780471acc470d2c69cab2d5 to your computer and use it in GitHub Desktop.
vps上部署ftp+xcrc供beyondcompare远程人工备份文件
sudo apt-get install libssl-dev
git clone https://github.com/proftpd/proftpd.git
cd proftpd
./configure --enable-openssl --with-modules=mod_digest #开启这个模块可以支持xcrc远程快速比较, 参考http://www.proftpd.org/docs/contrib/mod_digest.html#Installation
make
sudo make install
sudo vi /usr/local/etc/proftpd.conf
#在"Port 21"下面加上:
SocketBindTight on #因为通过kcptun通道走, 不需要监听外网ip, 只要127.0.0.1即可
DefaultAddress 127.0.0.1
PassivePorts 10021 10022 #客户端都在防火墙后的, 只能被动模式, 而被动模式必须开单独的端口, 而且必须开两个以上
#这三行
sudo proftpd
#用kcptun把10021, 10022, 21映射到本地, 可以把21改成10210, 被动端口两个改成10211, 10212方便设置防火墙
#用beyond compare里的ftp passive mode连接
#可以用命令行测试ftp服务器:
ftp 127.0.0.1 10210
Name (127.0.0.1:malcolm): ubuntu
Password:
230 User ubuntu logged in
ftp> passive
ftp> quote xcrc .bashrc
250 AB254644
#跟beyondcompare配合需要修改:
proftpd/modules/mod_digest.c
//pr_response_add(R_250, _("Computing %s digest"), get_algo_name(algo, 0));
hex_digest = get_digest(cmd, algo, path, st.st_mtime, start_pos, len,
PR_STR_FL_HEX_USE_UC, digest_progress_cb);
if (hex_digest != NULL) {
//pr_response_add(R_DUP, "%s", hex_digest);
pr_response_add(R_250, "%s", hex_digest);
即注释掉一行改掉一行, 因为beyondcompare不接受"250 Computing..."那行而只接受"250 <crc32>"计算结果
beyondcompare里选上文件夹, 右键菜单选"Compare Contents", 然后再选"CRC Comparison", 再点击"Start"就可以快速远程CRC比较了
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment