由于身边设备包含种类过多,有Windows、Ubuntu、Android、iOS,有时候想要在四台设备间同步ppt,pdf,或者在Windows和Ubuntu上切换编译环境时用u盘拷贝文件步骤过于繁琐,且现有的一台服务器还没能充分利用资源,便萌生了在vps上再搭建一个ftp服务器的想法。
我对于ftp服务器的要求就是:有一定安全性,禁止匿名访问,尽量走加密通道传输,使用账户密码登录
然而百度上的教程经过我的测试大都不靠谱,于是自己Google摸索了一晚,找到了适合自己的搭建ftp的方法,在此分享并作为自己的备份。
1、 安装vsftpd软件
流行的FTP服务器端软件有:PureFTP,vsftpd,ProFTPD。考虑到租的服务器性能不高,我采用了轻量并且坑少的vsftpd。
|
|
|
|
安装完成后,需要配置/etc/vsftpd.conf文件内的一些设置
取消下列行首的#注释
|
|
|
|
|
|
在文件末尾添加下列语句开启被动模式(PASV)
|
|
|
|
|
|
|
|
之后保存退出编辑文件,重启vsftpd服务。 service vsftpd restart
这时,ftp服务器就可以使用了,但是在21端口使用ftp登录是非常危险的,即使使用了账户密码,但传输文件很容易会被劫持,因此我在Google之后选择使用更为安全的sftp。
2、安装配置sftp
sftp使用的是ssh文件传输协议,需要安装openssh-ser商业转载请联系作者获得授权,非商业转载请注明出处。ver,一般的vps服务器都预先安装过。安装过就可以跳过这一步。
安装完成之后我们需要为ftp新建一个用户。为了以后可能会添加用户,这里就创建一个ftpaccess用户组。
sudo groupadd ftpaccess
然后在/etc/ssh/sshd_config中修改一些参数
找到 PasswordAuthentication 参数,设置为yes
注释掉 Subsystem sftp /usr/lib/openssh/sftp-server
在文件最后添加下列语句:
|
|
|
|
|
|
|
|
|
|
|
|
之后重启ssh服务 service ssh restart
下面开始创建ftpaccess用户组中的用户
|
|
|
|
|
|
将nologin脚本加入开机自动执行计划
|
|
|
|
|
|
|
|
|
|
现在就可以通过sftp协议向share文件夹上传下载文件了
在Windows和Linux操作端,推荐使用filezilla客户端版(filezilla Client)对ftp服务器进行访问。因为首先fz提供了对sftp登录的支持,最重要的是,由商业转载请联系作者获得授权,非商业转载请注明出处。于简体中文版的Windows系统因为国家规定使用的是GBK字符编码,在ubuntu服务器以及linux上,默认使用的是utf-8全球通用编码,编码不同会导致中文文件名乱码。因此需要在fz中开启强制使用utf-8编码,才能保证文件之间的稳定传输。在iOS上,我使用的是FtpManager,同样使用sftp登录,强制使用utf-8字符编码。在Android上,我使用的是AndFTP,设置同上。
文章出处:在vps上搭建ftp服务器
留言