`
boendev
  • 浏览: 240912 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多

 

安装部分摘自开源中国,最后红色部分解决无法登陆(cannot change directory)问题

环境是centos6安装vsftpd
第一步:安装vsftpd,在终端允许

# yum -y install vsftpd

没什么问题就直接安装好啦

第二步:编辑vsftpd的配置文件

# vi /etc/vsftpd/vsftpd.conf

第三步:清空文件, 然后添加如下内容:

listen=YES
background=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to hao32 FTP servers
pam_service_name=vsftpd
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

第四步:终端运行下面命令

# touch /etc/vsftpd/vsftpd.chroot_list
# service vsftpd start

如果出现下面这句话:

Starting vsftpd for vsftpd: [ OK ]

则表示成功,如果不行则用这个语句:

/etc/rc.d/init.d/xinetd restart

ftp默认我们使用系统用户, 现在我们来添加用户ftptest, 指向目录/home/ftptest , 权限是nologin, 就是没给shell权限, 不影响ftp的

# useradd  ftptest  -d /home/ftptest -s /sbogin

如果显示:in/nol

useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

不用理会, 只是告诉你, 你指向的目录已经存在了, 这不影响
设置目录及其文件的属组, 你也可以使用别的分组方式

# chown -R  ftptest . ftptest /home/ftptest

设置一下用户hao32的密码, 自定义啦

# passwd ftptest

把用户 ftptest 加到/etc/vsftpd/vsftpd.chroot_list里, 这样用户就可以正常登陆并且不能跳出自己的目录

# echo ‘ ftptest ′ >> /etc/vsftpd/vsftpd.chroot_list
# service vsftpd restart

测试登陆
ftp主机: 服务器IP地址
ftp用户:  ftptest 
ftp密码:  ftptest

 

如果这个时候遇到 cannot change directory /home/ftptest

请输入以下命令  # setsebool -P allow_ftpd_full_access 1

# service vsftpd restart

 

这个时候如果再遇到 java.net.SocketTimeoutException: Read timed out

或者类似超时问题

解决方法

来源 :  http://www.lingdus.com/forum.php?mod=viewthread&tid=8189 
在服务端配置被动模式就可以从根源上解决这问题。
1、编辑 Vsftpd  配置文件

 

  1. vi /etc/vsftpd/vsftpd.conf
复制代码

2、在最下面添加以下信息

  1. pasv_enable=YES #开启被动模式
  2. pasv_min_port=4000  #随机最小端口
  3. pasv_max_port=5000  #随机最大端口
复制代码

3、加载内核 ip_conntrack_ftp 和 ip_nat_ftp(终端执行)

  1. modprobe ip_conntrack_ftp
  2. modprobe ip_nat_ftp
复制代码

4、配置 iptables 开放 4000 到 5000 端口


  1. vi /etc/sysconfig/iptables  在*filter下加入下
  2. -A OUTPUT -p tcp --sport 4000:5000 -j ACCEPT
  3. -A INPUT -p tcp --dport 4000:5000 -j ACCEPT
复制代码

5、加载 iptables 配置

  1. iptables-restore < /etc/sysconfig/iptables
复制代码

6、重启 Vsftpd

  1. service vsftpd restart
复制代码
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics