您的位置:首页 > 运维架构 > Linux

CentOS FTP服务搭建过程记录

2015-08-27 15:07 776 查看

一、前提

系统已经安装完毕,安装过程中直接安装ftp相关服务。本环境为VMware10 + CentOS6.5×64。

二、过程记录

1. 开启vsftp服务(vsftp后面的d代表后台服务)

>>service vsftpd start


2. 查看vsftp状态

>>service vsftpd status


显示正在运行,即启动成功

3. 建立ftp专用用户

>>adduser -d /ftp -g ftp -s /sbin/nologin ftp_ppp
>>passwd ftp_ppp


使用命令(adduser)添加ftp_ppp用户,不能登录系统(-s /sbin/nologin),自己的文件夹在(-d /ftp)),属于组ftp(-g ftp),

这样ftp登录后文件夹就是在根目录的/ftp下

4. 更改/ftp目录的权限

>>chmod 777 /ftp


5. 在window中ping,并且使用ftp命令

ftp 192.168.0.1


显示"连接到192.168.0.1"即为可连接,不成功见问题记录

三、问题记录

1. vsftpd不能启动

centos中使用命令:

>>service vsftpd start


报错:为vsftpd启动vsftpd:500 OPPS:cannot read config file:/etc/vsftpd/vsftpd.conf

解决:故障原因为没有激活vsftpd,并设置其运行级别

>>su 使用root用户登录

>>chkconfig --level 35 vsftpd on
>>service vsftpd start


2. cmd中ftp连接时报错"500 OOPS: cannot locate user entry:ftpsecure"

>> vi /etc/vsfptd/vsftpd.conf


注释 nopriv_user=ftpsecure 这句

3. 建立完用户后,cmd中使用用户连接,报错"500 OOPS: cannot change directory:/home/ftp_ppp"

>> vi /etc/selinux/config


将selinux=enforcing 改为disabled,然后reboot重启服务器

参考:http://www.server110.com/vsftpd/201402/6312.html

4. cmd与LeapFTP中文乱码问题(暂无良好解决方案,待完善)

查看系统字符集

>>echo $LANG

修改默认字符集为gb2312

>>vi /etc/sysconfig/i18n
把里面第一行的UTF-8修改为gb2312

激活配置文件

>>source /etc/sysconfig/i18n
(修改后本机可能出现乱码,改方案有待商榷)

5. 开启LINUX服务器防火墙后,window中不能正常登录
首先可关闭防火墙,确定是否为防火墙的原因,但不推荐一直关闭防火墙,推荐以下的解决方案。

>>vi /etc/sysconfig/iptabels
如果没有下面的代码,加入。意思为开放系统的21、22端口。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
这是常规设置,在防火墙配置文件中开放端口,但是还是不能正常访问到FTP服务器。

首先要了解概念:

FTP支持两种模式:一种方式叫做Standard (也就是 PORT方式,主动com方式);

一种是 Passive (也就是PASV,被动方式)。

Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。

Port模式FTP客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

解决方案:

首先,编辑vsftpd.conf,最后加入

pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000


其次,编辑iptables,在上述21,22端口后加入

-A INPUT -p tcp --dport 6000:7000 -j ACCEPT


重启防火墙,使配置生效:

>>service iptables restart


重启vsftpd服务

>>service vsftpd restart


四、小知识记录

1. ftp上传默认路径在,/var/ftp/pub/ ,比如匿名用户的默认路径就是这个,而其他用户可指定目录。

2. vi退出,esc,然后shift+q

3. netstat -ntlp 可以查看启动的TCP端口及相应进程

netstat -nulp可以查看启动的UDP端口及相应进程

(主要用第一个命令查看21,22等端口是否开放)

五、参考资料

http://wenku.baidu.com/link?url=0tnrY0FXzYwH-EJ7yK69LaFEHmbE3xK0E-IUfi7kkms8arC3c8yxmUf_Et0PPBn2l9mZlffDqC1dcJ0AIuRs5pWFi90S0_6qx66ugLzUxZq
http://jingyan.baidu.com/article/03b2f78c771db45ea237ae28.html
http://bguncle.blog.51cto.com/3184079/957315/
http://shuany.iteye.com/blog/850568
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: