海运的博客

sftpgo使用及占用内存较大解决

发布时间:December 9, 2020 // 分类: // No Comments

编译windows下版本,数据库使用bolt,禁用sql。

git clone https://github.com/drakkan/sftpgo.git
cd sftpgo
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -tags nogcs,nos3,noazblob,nomysql,nosqlite,nopgsql,noportable,novaultkms,noawskms,nogcpkms -ldflags "-s -w 

使用vbs脚本启动隐藏cmd窗口并重定向日志到nul:

set ws=createobject("wscript.shell")
ws.CurrentDirectory="d:\Program Files\sftpgo\"
ws.run """d:\Program Files\sftpgo\sftpgo.exe"" serve -v=0 -l """" 2> nul",0
wscript.quit

sftpgo默认认证用户密码使用argon2id,当连接数较多时会占用大量内存,通过web新建用户时密码可直接输入sha512crypt密码密文,后续认证时则使用sha512crypt认证,大幅减小内存占用,密码生成:

echo 123456|openssl passwd -6 -in -

参考:
https://github.com/drakkan/sftpgo/blob/master/docs/account.md

Vsftpd配置SSL加密FTP数据传输

发布时间:August 17, 2012 // 分类:备份存储,OpenSSL // No Comments

FTP是互联网上广泛使用的文件传输协议,缺点是数据明文传输,在数据经过的节点上进行监听可轻易获取用户和密码,给安装带来诸多隐患,可使用SSL加密FTP连接。
先测试明文传输下用Tcpdump监听ftp用户名和密码:

tcpdump port 21 -nA
20:03:43.077038 IP 192.168.1.1.34453 > 192.168.1.4.21: Flags [P.], seq 21:34, ack 134, win 2920, length 13
E..5."@.@..J............k..3..(kP..hC...USER onovps
20:03:43.077506 IP 192.168.1.4.21 > 192.168.1.1.34453: Flags [P.], seq 134:168, ack 34, win 365, length 34
E..J.g@.@.................(kk..@P..m#...331 Please specify the password.
20:03:43.081218 IP 192.168.1.1.34453 > 192.168.1.4.21: Flags [P.], seq 34:47, ack 168, win 2920, length 13
E..5.#@.@..I............k..@..(.P..h:...PASS onovps
20:03:43.102350 IP 192.168.1.4.21 > 192.168.1.1.34453: Flags [P.], seq 168:191, ack 47, win 365, length 23
E..?.h@.@.................(.k..MP..m.8..230 Login successful.
20:03:43.103626 IP 192.168.1.1.34453 > 192.168.1.4.21: Flags [P.], seq 47:52, ack 191, win 2920, length 5
E..-.$@.@..P............k..M..(.P..h.L..PWD
20:03:43.104025 IP 192.168.1.4.21 > 192.168.1.1.34453: Flags [P.], seq 191:211, ack 52, win 365, length 20
E..<.i@.@.................(.k..RP..mt...257 "/home/onovps"

查看Vsftpd是否支持SSL:

#https://www.haiyun.me
ldd `which vsftpd`|grep ssl
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f18f8c0a000)

生成SSL证书:

openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
chmod 400 vsftpd.pem
cp vsftpd.pem /etc/ssl/certs/

Vsftpd配置SSL支持:

ssl_enable=YES
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

重启vsftp使用支持ssl的ftp客户端连接,本例使用FlashFXP连接:
flashFXP新建连接使用SSL加密FTP.png
flashfxp登录信息ssl.png

Windows/Linux下用Curl上传下载FTP文件

发布时间:April 27, 2012 // 分类:常用软件 // No Comments

Curl是一款强大的命令行多协议访问工具,多操作系统支持,本文就简单介绍下Curl的FTP上传、下载功能。
列出FTP目录:

curl -u user:passwd ftp://www.haiyun.me

下载文件:

curl -u user:passwd ftp://www.haiyun.me/file.rar -o file.rar

上传文件:

curl -u user:passwd -T file.rar ftp://www.haiyun.me

Linux/Centos定时备份数据库并上传到FTP

发布时间:April 27, 2012 // 分类:备份存储 // No Comments

新建脚本,备份数据库并上传到FTP。

#/bin/bash
#Cretated by www.haiyun.me
sqluser=root #sql用户
sqlpasswd=onovps #sql密码
dbname=onovps #数据库名称
ftphost=www.haiyun.me #ftp地址
ftpuser=onovps #ftp用户
ftppasswd=onovps #ftp密码
yum -y install lftp
/usr/local/mysql/bin/mysqldump --user=$sqluser --password=$sqlpasswd --lock-all-tables $dbname > $dbname.sql
tar zcvf blog-$(date -d "today" +"%Y-%m-%d").tar.gz $dbname.sql --remove-files
lftp << EOF
open ftphost
user ftpuser ftppasswd
cd /mnt/back
put -Ec $dbname-$(date -d "today" +"%Y-%m-%d").tar.gz
bye
EOF

添加计划任务:

crontab -e
30 1 * * * sh /back.sh #每天凌晨1点30执行

Linux/Centos下ftp客户端lftp使用

发布时间:April 26, 2012 // 分类:常用软件 // No Comments

安装:

yum install lftp -y

使用语法:

lftp -[fceup] user:passwd@host #passwd可选,此方式密码明文保存,history可查看
-f <file>           #执行文件中的命令后退出
-c <cmd>        #执行命令后退出
-e <cmd>         #登录后后执行命令
-u <user>[,<pass>]  #使用指定的用户名/口令进行验证
-p <port>           #连接指定的端口,默认21

常用命令:

cd #切换FTP目录
lcd #切换本地目录
ls  #列出FTP目录文件
!ls #列出本地目录文件
find ./ -name file #查找文件
mv #移动
rm #删除
mkdir #新建目录
rmdir #删除目录

上传下载文件:

get [cEaO] file -o newfilename #下载文件
put [cEaO] file -o newfilename #上传文件
pget -n #多线程下载
可选参数:
-c #支持断点续传
-E #下载后删除远端文件
-a #指定传输为ascii模式, 默认为二进制模式
-O #指定存放目录

上传下载目录:

mirror [cRnr] remote [local]
可选参数:
-c #支持断点续传
-R #上传整个目录
-n #只下载较新的档案,可用于增量备份
-r  #只下载当前目录,不递归目录

书签管理:

bookmark add name #保存当前连接为书签名字name,下次打开可直接使用lftp name
bookmark del name #删除书签
bookmark list #显示书签列表
bookmark edit #编辑书签

编码设置:

set ftp:charset "gbk"
set file:charset "UTF-8"
或加入配置文件.lftp/rc

主动/被动模式:

#默认为被动模式
set ftp:passive-mode no #关闭被动模式转为主动模式
#主动客户端开启数据传输端口,被动服务端开启数据传输端口。

妙用lftp多线程下载:

lftp -c "pget -n 10 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.gz"
分类
最新文章
最近回复
  • : linux系统上单个网卡多条宽带拨号获取公网IP,外网可以访问这些IP,有偿! Q:25299...
  • 硅谷少年: 非常有用,感谢分享
  • spartan2: https://dashboard.hcaptcha.com/welcome_accessib...
  • 海运: 应该能,在购买页面先手工跳过cf机器验证,后续一定时间内不更换ip应该不会再次验证。
  • spartan: 大佬斯巴达开启了CF的机器识别验证,请问插件能自动跳过吗? 另外这个脚本有没有简单使用说明,新...
  • vincent: 膜拜大佬
  • 海运: proxy-header或proxy_protocol
  • liangjw: 如果是 内部调用 或者 中间存在 代理 而上一个代理又在内网 ,那怎么处理来自代理私有IP?
  • chainofhonor: 感谢,用dnsmasq设置自动判断BIOS和UEFI成功了
  • 海运: 不好意思,这个是很多年前的,现在也许已经不适用,我现在也不用多线了。