自己最近有搞了不花钱的VPS,但配置太低。Windows登录老是提醒系统内存不足。果断的放弃Windows server 换成 ubuntu server.
先配置个 ftp 让自己的资料可以传上去
一、安装vsftpd
sudo apt-get install vsftpd
可选执行
sudo apt-get update #更新源 sudo apt-get upgrade #更新已安装的包
二、配置文件的修改
sudo vim /etc/vsftpd.conf
简单的修改下面几个选项
anonymous_enable=NO 拒绝匿名登陆
write_enable=YES 设置可以上传文件,这个设置看需要个人需要
local_root=/home/ubuntu/ftp 这个是系统给我创建的用户(ubuntu)我自己创建了一个目录ftp,这是配置ftp的默认根目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list #这个是一个用户名文件列表
pam_service_name=vsftpd
#下面这几个选项与ftp的运行模式有关
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=10100
开启ASCII传输
ascii_upload_enable=YES
ascii_download_enable=YES
咱们是中英文混合,开启utf8
utf8_filesystem=YES
三、添加用户名到
vsftpd.chroot_list
这个文件需要创建
sudo vim /etc/vsftpd.chroot_list
进入后添加一行 ubuntu(用户名),保存退出
四、配置用户
我的VPS是用公钥登录的,没有或不知道密码,则自己给用户ubuntu创建个密码
sudo passwd ubuntu
输入两次密码
五、重启vsftpd
sudo systemctl start vsftpd 或 sudo service vsftpd start sudo systemctl restart vsftpd 或 sudo service vsftpd restart
因为vsftpd在安装的时候已经把它安装成服务了,所以这么重启或启动,现在就能远程ftp登录了,上传下载文件都没问题。
六、配置防火墙(如果主机开启了防火墙),网关路由器(现在vps云中叫做安全组,修改对应的安全策略)的端口,使我们配置好的ftp服务可以正常运行。主要放行的端口是 20,21, 10000-10100在tcp协议上。
七、如果要创建单独的用户或多用户使用 ftp,那么需要创建用户,编辑权限和配置文件再修改
配置文件修改
注意这个配置项 chroot_list_file=
/etc/vsftpd.chroot_list
修改这个配置项对应的文件
添加更多的用户名到此文件中,以便这些用户可以登录ftpvsftpd.chroot_list
修改或添加下面的配置
user_sub_token=$USER
local_root=/home/$USER/ftp
添加一个user_sub_token ,以便插入用户名在我们local_root directory路径,以便我们的配置将为该用户,并可能被添加任何未来的用户。
创建用户和目录并设置权限,相关参考命令
mkdir /home/ftpuser sudo useradd ftpuser -d /home/ftpuser -m sudo passwd ftpuser mkdir /home/ftpuser/ftp #下面这个username注意替换 chmod 777 -R /home/username/ftp
最后编辑
/etc/
文件 把ftpuser用户名和自己创建的各种用户的用户名放到文件中,再重启vsftpd服务,也就可以使用了。这样vsftpd搭建的ftp服务器基本就可以用了。vsftpd.chroot_list
配置 ssl 加密传输与登录 因为国内的网络,各种非法劫持太多了,昨天传了一个yii2的包,居然有好几个文件没有传上去,还以为是我配置的apache2出错了,原来是好几个文件没传上去,居然ftp客户端没有报传输失败的错误,所以果断的启用SSL传输加密。
修改一些配置项
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#上面这两个秘钥可以自己用openssl 生成,也可以用配置文件中默认存在(亚马逊云VPS安装vsftpd是自己有的)的,我用的就是默认存在的秘钥文件
ssl_enable=YES
#拒绝ssl匿名连接,配置下面几项
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
#直接使用更好的TLS,不使用SSL,配置下面项目。
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
最后 拉个配置清单 sudo vim /etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES local_root=/home/ubuntu/ftp write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES #如果是pasv模式,这个端口可以关闭的 ascii_upload_enable=YES ascii_download_enable=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd pasv_enable=Yes pasv_addr_resolve=YES pasv_min_port=10000 pasv_max_port=11000 rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO utf8_filesystem=YES
如果,系统开启了防火墙 ufw
那么我们需要开启ftp所用的端口
sudo ufw allow 20 sudo ufw allow 21 sudo ufw allow 10000:11000/tcp sudo ufw reload #重启防火墙
上图更能说明问题
这样就可以妥妥的上传文件了,剩下就看网速了。