概述

FTP(File Transfer Protocol)是一种专用于传输文件的网络协议。有很多服务端程序和客户端程序支持FTP协议。但是FTP有很多缺陷:

鉴于FTP协议以上众多缺陷,在不必使用FTP协议时尽量不要使用它。需要传输文件时,可以用SFTPsamba等代替FTP。

安装

Debian上带了众多FTP服务端软件,各有特色。

1. vsftpd

vsftpd是FTP服务程序的一种。输入如下命令即可安装vsftpd:

aptitude install vsftpd

打开/etc/vsftpd.conf可以对vsftpd进行配置:

anonymous_enable=YES # 是否允许匿名访问
local_enable=YES  #是否允许本地用户登录
write_enable=YES  #添加该行可以让客户端上传文件
anon_upload_enable=YES #是否允许匿名用户上传文件
anon_mkdir_write_enable=YES #是否允许匿名用户创建目录
chroot_local_user=YES  #登录后是否转到登录用户的目录(否则会显示服务器的根目录)
ftpd_banner=Welcome to blah FTP service.   #登录服务器时的欢迎词

修改配置后使用如下命令重新加载配置文件:

/etc/init.d/vsftpd reload

vsftpd没有内置虚拟路径的功能。在设置了chroot后,vsftpd登录后显示的目录就是用户的目录。要设置共享的目录,可以使用mount命令。比如登录用户为ftp,登录后显示的目录为/home/ftp,需要共享的目录为/music,则可以这样设置:

mkdir /home/ftp/music
mount --bind /music /home/ftp/music

客户端连接

假设服务器地址是169.254.235.235。在Windows上打开IE,在地址栏输入下列地址即可打开服务器:

ftp://169.254.235.235/

在Linux上,可以使用gftp软件连接ftp服务器。如下图所示:

gftp.png

文件名乱码

虽然FTP协议建议文件名使用UTF8进行编码,但是很多FTP服务端和客户端并不遵守这一建议。如果在ftp服务器上使用的文件名编码和客户端本地编码不同,会造成显示的文件名乱码。比如Linux服务器上大多使用UTF8编码,而windows上的FTP客户端不支持UTF8编码,就会造成中文文件名乱码。这个问题有如下几种解决方法:

参考

ch3n2k.com | Copyright (c) 2004-2020 czk.