proftpd是什么,看名字就知道它应该和ftp服务有关,具体内容可以到这里查看
http://www.proftpd.org/
首先看看自己的及其上有没有proftpd。在终端里输入proftpd,如果没有ubuntu告诉你现在系统里没有proftpd,你需要用apt-get来安装。那好吧,就按他说的做。
sudo apt-get install proftpd
proftpd很小,几乎是瞬间装完。我用的cn99的源,速度非常快。
然后查看文档得知proftpd有两种运行模式:Standalone 和 inetd
standalone比较耗资源适合大访问量,inetd会为每一个请求启动一个进程,平时不用的时候不耗资源,我就是自己用用,所以选择inetd模式。
cat /etc/inetd.conf
结果什么都没有。
进一步查看文档得知,现在的linux基本上用xinetd取代inetd了。但是我在系统里找不到xinetd。恩~,明白了:
sudo apt-get install xinetd
又是瞬间完成。
进入/etc/xined.d目录,看见了几个配置好的项目。我们在加一个ftp吧。
sudo vim ftp
service ftp
{
flags = REUSE
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/proftpd
log_on_success = HOST PID
log_on_failure = HOST ATTEMPT
}
具体是什么意思? 其实我也是半懂不懂的,想去xinetd的主页上看看,结果找不到页面。
然后就是配置proftpd本身了。
proftpd的配置文件在/etc/proftpd/proftpd.conf
不愧“pro”这个名字,看上去非常“专业”。很复杂,官方主页上文档也非常复杂。
我现把匿名用户登录那部分打开了。
<Anonymous ~ftp>
....
....
....
</Anonymous>
这段应该在proftpd.conf的最后面。
对于这个配置文件,如果你用过apache httpd,应该看上去很眼熟。
然后重启一下xinetd
sudo service xinetd restart
结果告诉我没有service这个命令。
同样:
sudo apt-get debian-helper-scripts
重启完服务器后,看看ftp已经可以登录了。如果不能登录,你可以试试一下方法看看问题出在哪里。
到/etc/init.d目录下直接调用xinetd start看看有什么信息出来,如果没有什么有用信息。
修改一下xinetd在
start)
checkportmap
echo -n "Starting internet superserver: xinetd"
start-stop-daemon --start --quiet --background --exec /usr/sbin/xinetd -- -pidfile /var/run/xinetd.pid -filelog /var/log/xinetd.log -f /etc/xinetd.conf $XINETD_OPTS
这样再次启动xinetd,你就可以在/var/log目录下找到xinetd.log文件。看看启动xinetd过程中出现了什么问题。
接下来就是研究proftpd本身的配置了,几个经典命题需要考虑:
虚拟目录
用户权限
流量限制
现在虽然能登录了,但是每次登录时间都特别长,开始还以为是用了inetd模式的问题,后来上网找了一下,原来是proftpd在每次都通过DNS查找登录者的网址是什么。
所以要添加两个选项:
IdentLookups off
UseReverseDNS off
中文乱码问题
FlashFxp登录,结果发现中文文件名都变成了乱码。因为我的ubuntu设定的字符集为utf-8。用FileZilla,可以在站点管理的高级设定中强制使用UTF-8,就能看到中文了。可以FlashFXP我没早到相关的设置。
接下来就是让我的用户组terry可以访问/media下的文件,其实就是挂载的原来的NTFS分区。
xml 代码
<Directory /media/*>
<Limit ALL>
AllowGroup terry
<!--</span--></Limit>
</Directory>