zoukankan      html  css  js  c++  java
  • 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上传成功。

      

     

      

      

        

      

      

      

      

      
      

  • 相关阅读:
    HDFS原理分析之HA机制:avatarnode原理
    [转]Hessian——轻量级远程调用方案
    [转]成为Java顶尖程序员 ,看这11本书就够了
    [转]Java四种线程池的使用
    [转]Java多线程
    IntelliJ IDEA 快捷键
    [转]django 日志logging的配置以及处理
    [转]使用TortoiseGit处理代码冲突
    动软DbHelperSQL
    [转]Entity Framework 的实体关系
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/15576088.html
Copyright © 2011-2022 走看看