为了学习ftp服务器的搭建,主要步骤如下:
1、安装软件:
sudo apt update //更新软件源
sudo apt upgrade //更新软件
sudo apt install vsftpd //安装ftp软件包
2、配置ftp,主要涉及两个文件的配置/etc/ftpusers和/etc/vsftpd.conf
配置选项:
1 listen=NO 2 listen_ipv6=YES 3 anonymous_enable=YES 4 local_enable=YES 5 write_enable=YES 6 local_umask=022 7 dirmessage_enable=YES 8 use_localtime=YES 9 xferlog_enable=YES 10 connect_from_port_20=YES 11 ftpd_banner=Welcome to blah FTP service. 12 chroot_local_user=YES 13 secure_chroot_dir=/var/run/vsftpd/empty 14 pam_service_name=vsftpd 15 rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem 16 rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key 17 ssl_enable=NO 18 pasv_enable=YES 19 pasv_min_port=10000 20 pasv_max_port=10100 21 allow_writeable_chroot=YES 22 seccomp_sandbox=NO 23 isolate_network=NO
注:第22、23行是由于笔者的ubuntu是win10的子系统的原因,添加的,如果不添加可以用,也可以删除
3、重启ftp服务:
sudo service vsftpd restart
结果如下:
* Stopping FTP server vsftpd [ OK ]
* Starting FTP server vsftpd [ OK ]
服务器端的安装和配置已经完成了,接下来进行ftp的设置工作
4、准备ftp登录的用户:
sudo useradd -m ftpuser //添加用户
sudo passwd ftpuser //修改用户密码
sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP_TEST" //准备必要的文件
也可以:用vim创建文件,也可以用touch创建文件
sudo chmod 777 ftpuser/ //修改访问权限
5、测试ftp
1、可以在windows10下资源管理的地址栏输入:ftp +Ip,此处我的是本地,所以IP就是127.0.0.1即可,其他请修改成对应的IP
2、再开一个linux子系统的终端,使用命令ftp 127.0.0.1
提示信息:
Connected to 127.0.0.1.
220 Welcome to blah FTP service.
Name (127.0.0.1:nication): ftpuser //输入提前准备好的用户名
331 Please specify the password.
Password: ****** //输入用户密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> //此时就是登陆成功
6、使用ftp
1、ls //查看文件
本例中:
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 12 Nov 19 15:05 FTP_TEST
-rw-r--r-- 1 1001 1001 2740 Nov 19 16:11 sources.list.bak
-rwxr-xr-x 1 1000 1000 16696 Nov 19 15:08 testc
-rw-r--r-- 1 1000 1000 96 Nov 19 15:07 testc.c
226 Directory send OK.
2、从远端服务器下载文件到本地,使用get,格式 get + 文件名 + 【文件新名】
ftp> get FTP_TEST
local: FTP_TEST remote: FTP_TEST
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for FTP_TEST (12 bytes).
226 Transfer complete.
12 bytes received in 0.00 secs (76.5931 kB/s) //标明下载成功
下载前ls:sources.list testc111 vsftpd.confbak
下载后ls:FTP_TEST sources.list testc111 vsftpd.confbak //标明下载成功
3、将本地文件上传到远端放服务器端,使用put + 文件名 + 【文件新名】
上传前ls:
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 12 Nov 19 15:05 FTP_TEST
-rw-r--r-- 1 1001 1001 2740 Nov 19 16:11 sources.list.bak
-rwxr-xr-x 1 1000 1000 16696 Nov 19 15:08 testc
-rw-r--r-- 1 1000 1000 96 Nov 19 15:07 testc.c
226 Directory send OK.
上传:put name.txt zhangname.txt
local: name.txt remote: zhangname.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
9 bytes sent in 0.00 secs (169.0204 kB/s)
上传后ls:
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 12 Nov 19 15:05 FTP_TEST
-rw-r--r-- 1 1001 1001 2740 Nov 19 16:11 sources.list.bak
-rwxr-xr-x 1 1000 1000 16696 Nov 19 15:08 testc
-rw-r--r-- 1 1000 1000 96 Nov 19 15:07 testc.c
-rw-r--r-- 1 1001 1001 9 Nov 19 16:39 zhangname.txt
226 Directory send OK.
通过前后的ls对比很明显看出多了zhangname.txt的文件,标明ftp上传成功。