和阿里云实现ftp传输
2016-09-24 08:43
246 查看
由于参加数学建模比赛,做的题目数据有点大自己的笔记本性能又不好,所以按流量购买了阿里云的服务器。首先要解决的是服务器和本地之间的文件传输。搜索之后选择了ftp在这里总结一下。
服务器配置
首先使用ssh连接服务器
apt-get update 更新源信息
安装 ftp服务器vsftpd
添加一个用户,专门作为ftp用户登录登录使用
# 用户名:myftp
# 用户目录:/home/myftp
# -s /usr/sbin/nologin 限制myftp不能登录shell终端
useradd -d /home/myftp -s /usr/sbin/nologin myftp
查看/etc/shells是否包含/usr/sbin/nologin, 如果没有添加
修改账户密码
创建home目录并修改权限:
mkdir /home/myftp
chown -R myftp.myftp /home/myftp
# /home/myftp 不能有写权限否则登录不成功
chmod 555 /home/myftp
修改vsftpd文件:
vim /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地账户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 打开下面注释,允许ftp访问其主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
添加/etc/vsftpd.chroot_list
vim /etc/vsftpd.chroot_list
# 禁止ftp账户访问主目录,文件中添加内容:ftp
重启vsftpd
service vsftpd restart
在本地安装filezilla客户端
下载
服务器配置
首先使用ssh连接服务器
apt-get update 更新源信息
安装 ftp服务器vsftpd
apt-get install vsftpd -y
添加一个用户,专门作为ftp用户登录登录使用
# 用户名:myftp
# 用户目录:/home/myftp
# -s /usr/sbin/nologin 限制myftp不能登录shell终端
useradd -d /home/myftp -s /usr/sbin/nologin myftp
查看/etc/shells是否包含/usr/sbin/nologin, 如果没有添加
修改账户密码
passwd myftp
创建home目录并修改权限:
mkdir /home/myftp
chown -R myftp.myftp /home/myftp
# /home/myftp 不能有写权限否则登录不成功
chmod 555 /home/myftp
修改vsftpd文件:
vim /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地账户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 打开下面注释,允许ftp访问其主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
添加/etc/vsftpd.chroot_list
vim /etc/vsftpd.chroot_list
# 禁止ftp账户访问主目录,文件中添加内容:ftp
重启vsftpd
service vsftpd restart
在本地安装filezilla客户端
下载
wget -c http://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.10.3/FileZilla_3.10.3_x86_64-linux-gnu.tar.bz2/download?nowrap[/code]
解压
# 这里可能要对下载的文件重命名
tar -vxjf FileZilla_3.10.3_x86_64-linux-gnu.tar.bz2
执行启动
# 可以在/usr/local/bin中创建软连接方便以后启动
cd /FileZilla3/bin
./filezilla
连接出现的问题
访问过程中可能出现(530 User Deny错误)
以apt-get自动安装的vsftpd会因为ubuntu内核登录采用PAM认证用户,这个方式会继承给ftp登录用户,而导致任何的ftp用户(无论是本机还是远程发起的)拒绝登录——530 User Deny.
Note: 以源码vsftpd编译不受此bug影响
此bug实际上是由于ubuntu过于严谨的用户认证措施造成的。虚拟ftp用户也同样收到影响。无法通过任何方式登录ftp。
网上有补丁,这里是更简单的修复方法:
卸载掉vsftpd: apt-get remove vsftpd
rm /etc/pam.d/vsftpd
apt-get重装vsftpd
参考
http://jingyan.baidu.com/article/3d69c5516f4b82f0cf02d7a2.html
http://blog.csdn.net/wengyupeng/article/details/44780315
https://bbs.aliyun.com/read/237480.html?spm=5176.7114037.1996646101.1.zRWDim&pos=1
相关文章推荐
- 用批处理命令实现FTP文件的自动传输
- 通过UNIX SHELL脚本实现FTP自动传输
- 用Java写个ftp传输类实现文件的上传和下载,用ikvmc转成dll
- wininet实现ftp客户端关于传输进度的分析
- Python实现FTP传输
- PB实现FTP传输
- Android实现FTP客户端服务端多图下载【两部android手机之间传输】
- 用php实现ftp传输
- 用批处理命令实现FTP文件的自动传输
- 实现的局域网内大文件传输(ftp功能)
- Oracle 9 中PL/SQL实现FTP功能的文件传输
- 用WinInet实现Ftp传输
- 通过FTP实现vxsim和vxworks主机之间的文件传输
- 用Java写个ftp传输类实现文件的上传和下载,用ikvmc转成dll
- java实现FTP传输文件( 2008-05-23 15:45:09| 分类: java 技术)
- wininet实现ftp客户端关于传输进度的分析
- wininet实现ftp客户端关于传输进度的分析
- 用批处理命令实现FTP文件的自动传输
- python实现类似ftp传输文件的网络程序示例
- 使用ftp实现pc与开发板的文件传输