Ubuntu搭建FTP服务
版本:ubuntu 18.04
FTP搭建过程
准备工作
1、创建FTP对应的目录
root@ubuntu:/home/wj# mkdir ftp
2、进入ftp目录,创建目录anonymous,用来存放用户上传的文件,并修改目录的权限。同时创建文件test.txt用于测试下载功能
root@ubuntu:/home/wj# cd ftp
root@ubuntu:/home/wj/ftp# mkdir anonymous
root@ubuntu:/home/wj/ftp# chmod 777 anonymous/
root@ubuntu:/home/wj/ftp# touch test.txt
root@ubuntu:/home/wj/ftp# echo "for test" > test.txt
安装FTP服务
1、安装
root@ubuntu:/home/wj/ftp# apt-get install vsftpd
2、配置vsftpd.conf
root@ubuntu:/home/wj/ftp# vim /etc/vsftpd.conf
修改以下设置,允许匿名用户(可以直接在最后添加)
anonymous_enable=YES
anon_root=/home/wj/ftp
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
allow_writeable_chroot=YES
3、重新启动服务
/etc/init.d/vsftpd restart
测试FTP服务
1、本地登录
root@ubuntu:/home/wj/ftp# ftp 127.0.0.1
-bash: ftp: command not found
root@ubuntu:/home/wj/ftp# apt-get install ftp
本地安装服务,不一定有客户端,如果找不到命令,则需要安装ftp,安装后可登录。
2、登录
root@ubuntu:/home/wj/ftp# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 3.0.3)
Name (127.0.0.1:root): anonymous
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
登录anonymous不需要密码
3、测试下载功能,get file
ftp> get test.txt
local: test.txt remote: test.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test.txt (9 bytes).
226 Transfer complete.
9 bytes received in 0.00 secs (39.9503 kB/s)
ftp>
4、测试上传功能,put file
FTP根目录为anon_root=/home/wj/ftp
,vsftpd
为了安全,不让ftp
这个目录具有写权限,如果强行修改ftp目录权限,则登录时会报错,如下:
root@ubuntu:/home/wj# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 3.0.3)
Name (127.0.0.1:root): anonymous
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
应当将ftp
目录的权限去掉写权限,但是我们在使用ftp
put file
时,要求put
到的文件夹是有写权限的,否则put
文件将会失败,报错如下:
ftp> put hadoop-1.2.1.tar.gz
local: hadoop-1.2.1.tar.gz remote: hadoop-1.2.1.tar.gz
200 PORT command successful. Consider using PASV.
553 Could not create file.
没有写入文件的权限!
正确的做法是,在ftp
目录下创建一个具有写权限的目录,然后put
文件,都放在这个文件夹中,ftp
直接目录下无法被put
进入文件
本文做法是,在ftp
下创建文件夹anonymous
,然后向其中put
文件,成功
root@ubuntu:/home/wj# cd ftp
root@ubuntu:/home/wj/ftp# mkdir anonymous
root@ubuntu:/home/wj/ftp# chmod 777 anonymous/
ftp> cd anonymous
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp> put hadoop-1.2.1.tar.gz
local: hadoop-1.2.1.tar.gz remote: hadoop-1.2.1.tar.gz
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
63851630 bytes sent in 0.67 secs (91.3669 MB/s)
5、退出
ftp> bye
221 Goodbye.
通过浏览器访问FTP服务
通过浏览器访问
ftp://网址/
目录即为配置的FTP根目录:
anon_root=/home/wj/ftp
通过文件的具体FTP地址可以使用wget命令进行文件下载
FTP使用命令
https://linux.cn/article-6746-1.html
ls
cd
lcd
get file
mget file
put file
mput file
bye
exit
quit
help