ftp服务器的搭建

  为了学习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上传成功。

  

 

  

  

    

  

 

  

  

  

  
  

posted @ 2021-11-19 10:46  叕叒双又  阅读(504)  评论(0编辑  收藏  举报