最近由于实验室的网关机崩了,所以以前的vsftpd服务器也就不能正常用了,为了恢复实验室ftp功能,就不得不重新安装vsftpd服务器。为了下一次遇到同样的问题的时候能够迅速的解决问题,所以在这里把自己摸索一天的东西写下来作为以后恢复ftp服务器做参考。
1、安装vsftpd服务器
安装vsftpd服务器只需要简单的一条命令就可以完成:sudo apt-get install vsftpf 就这样vsftpd服务器就在你的机子上落脚了,接下来是配置vsftpd服务器,这才是最关键的部分。
2、配置vsftpd
主要是通过sudo gedit /etc/vsftpd.conf来修改vsftpd的内容(主要就是按照相应的需求把相应的#去掉),内容如下:
# 服务器以 standalong 模式运行,如果以 root 用户直接启动 vsftpd 进程,则必须。
# 注销语句以 xinetd 方式运行
listen=YES
# 上传总开关(全局控制)
write_enable=YES
# 接受匿名用户,默认无密码请求
anonymous_enable=YES
# 接受本地用户
local_enable=YES
# 本地用户上传文件(包括目录)的 umask
# 注意 vsftp 版本,某些旧版的该选项会被 chown_uploads/chown_username 二选项覆盖
local_umask=022
# 允许匿名用户上传文件,配合 anon_umask,否则文件权限皆为默认的 600,用户上传的文件不提供给任何匿名用户下载
anon_upload_enable=YES
# 匿名用户上传文件(包括目录)的 umask
# 注意点同 local_umask
anon_umask=022
# 允许匿名用户创建目录,配合 anon_umask 实现目录可写,否则依我(aBiNg)看,实际用处很小
anon_mkdir_write_enable=YES
# 允许匿名用户删除/重命名文件等操作
#anon_other_write_enable=YES
# 为 YES 则进入目录时显示此目录下由 message_file 选项指定的文本文件(默认为 .message)的内容
dirmessage_enable=YES
# 使用上传/下载日志,日志文件默认为 /var/log/vsftpd.log,可以通过 xferlog_file 选项修改
xferlog_enable=YES
# 使用 port 模式连接,并启用 20 端口
connect_from_port_20=YES
# 改变用户上传文件的所有者
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log
# 日志使用标准 xferlog 格式
#xferlog_std_format=YES
# 用户登陆后 idle 时间,超过设置超则被踢出服务器
#idle_session_timeout=600
# login 时的欢迎信息
ftpd_banner=Welcome to feifei FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
# 若为 NO,则记录在 chroot_list_file 选项所指定的文件(默认是
/etc/vsftpd.chroot_list)中的用户将被
# chroot 在登录后所在目录中,无法离开。如果为 YES,则所记录的用户将不被 chroot。
chroot_local_user=YES
# 设置为 YES 则下面的控制有效
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
local_root=/srv/ftp
然后保存文件。
重启vsftpd服务器:sudo /etc/init.d/vsftpd restart 或者用命令:service vsftpd start(stop)(注意用这个命令的时候必须在root权限的时候才可以。)来启动或停止vsftpd服务器。
完成以上的步骤之后你就可以再浏览器中输入你的ftp://你的ip地址 就可以访问你的ftp文件了(有可能这个时候会跳出一个对话框提示你输入用户名和密码:这个时候只要你输入你主机的用户名和密码就可以了(比如我的是haixian 123456))。注意这个时候显示的是默认的/srv/ftp目录的内容。如果你不想把这个目录作为共享的目录,想把别的目录作为共享目录的话操作如下:(比如你想共享/mnt/ftp目录)
修改/etc/vsftpd.conf文件(注意这个时候修改该文件必须要在你要共享的目录(这里是/mnt/ftp)下面执行vi /etc/vsftpd.conf命令),主要是修改最后一行,把local_root后面的目录修改成你想要共享的目录,比如我这里修改成local_root=/mnt/ftp 同时在加上两行
chroot_local_user=YES
anon_root=/mnt/ftp(这个也是你要共享的目录)
然后保存,重启vsftpd服务器。在访问就会显示/mnt/ftp目录下的内容了。
注意1:如果你不想用你的主机名和密码来作为别人登录ftp服务器的话,你可以再建一个用户来作为别人专门登录ftp服务器用。具体操作如下:
#useradd -G ftp -d /目录名 -M 用户名
#passwd 用户名 然后输入两次相同的密码就可以完成用户的建立
#chown 用户名.ftp /目录名 -R
#chmod 750 /目录名 -R
完成以上操作之后就可以再浏览器中输入ftp://你的ip地址 这个时候跳出提示叫你输入用户名和密码时,你就可以用刚才建立的用户名和密码来进行登录了。大致建立vsftpd服务器就这么东西吧,还有好多细节我也不是太明白,只是简单地把服务器给搭建起来了可以用了。以后再想到什么在增加吧。