环境: 服务器 Linux Debian 10 客户端 Win10 + FileZilla
出发点就是要在自己的服务器上建一个相对安全的文件交换地,同时需要有所谓"监牢",以保证服务器的安全。
- wu-ftp 是款功能强大的老牌 FTP服务器,但安全漏洞比较引人注目,所以选择第一个放弃。
- ProFTP据说是针对Wu-FTP的弱项而开发的,安全性得到了改善,同时还有自己的特点,比如standalone运行模式、设置简单等,也是一款非常流行的FTP Server,但据说不够稳定,所以也放弃了。
- vsftpd 特点是功能强大、配置简单、安全、稳定、速度快,更多也好像不需要了,所以就是它了。
安装: sudo apt update sudo apt install vsftpd
配置文件 /etc/vsftpd.conf
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=40000
pasv_max_port=41000
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
配置文件2 /etc/vsftpd.userlist,就是用户名,没有其他内容
上面的配置主要是根据这篇网友分享,但有些地方还是有问题。
这就是在这里要提到的坑 如果跟分享里一样用 Linux SSH 去连接FTP ftp -p 你的服务器域名 / IP 就可能会得到下面的出错提示: 227 Entering Passive Mode (172,31,22,234,171,245). 查了许多地方试了很多方法没有解决,当然没有花时间去读原文的ftp命令解释可能是个错误。 但FTP服务器实际运行正常,在Win10上用 FileZilla就可以完成连接,上传和下载都没有问题,所以首先应该用 sudo systemctl status vsftpd 查看FTP服务器的运行状况,然后直接用FileZilla尝试,这是一条捷径。 还有下面两点:
- 这个设置是用所谓"监牢"的方法完全把访问者限制在local_root=/home/$USER/ftp里面,其他地方都去不了。
- 这个设置没有用加密传输方法,如果用TLS方法还需要装其他的包,有兴趣的朋友可以看这篇分享:Ubuntu搭建vsftpd(以及使用TLS/SSL证书加密)
虽然ftp Server是个原始的网络部分,但对普通爱好者来说还是有点难!
|