一个描述 vsftpd 的场景

Moh*_*ani 5 vsftpd

我下载了 vsftpd,根据这个链接安装和配置如何在我的 Ubuntu 12.04 上的Ubuntu Linux 中设置 FTP 服务器。但问题是如何测试?

我想学习如何使用 vsftpd,我正在寻找一个简单的图形分步场景来学习。就像使用虚拟盒包括客户端和服务器的场景一样?

如何在 Ubuntu_1 中从 Ubuntu_2 下载文件。两者都是 Virtual box 中的虚拟操作系统

use*_*.dz 6

服务器端

  1. 检查服务状态

    sudo service vsftpd status
    
    Run Code Online (Sandbox Code Playgroud)
  2. 检查其正在运行的进程

    ps ax | grep vsftpd
    
    Run Code Online (Sandbox Code Playgroud)

    (命令:列出所有进程然后过滤 vsftpd 行的输出)

    或者您可以使用循环来监视其进程:

    while sleep 1 ; do clear ; ps ax | grep vsftpd ; done
    
    Run Code Online (Sandbox Code Playgroud)

    (命令为:等待 1 秒,清除 shell 屏幕,列出所有进程然后过滤 vsftpd 行的输出,再次循环,因为 sleep 总是成功返回)

  3. 检查与 vsftpd 进程相关的端口状态

    netstat -lnp | grep vsftpd
    
    Run Code Online (Sandbox Code Playgroud)

    (命令:列出所有具有端口号的侦听端口和拥有它的进程 ID(PID),然后过滤 vsftpd 行的输出)

  4. 监控服务器日志(tail-f跟踪日志更新和监控的vsftpd)

    $ tail -f /var/log/vsftpd.log
    Fri Apr 25 18:43:28 2014 [pid 2026] CONNECT: Client "127.0.0.1"
    Fri Apr 25 18:45:01 2014 [pid 2025] [sneetsher] OK LOGIN: Client "127.0.0.1"
    
    Run Code Online (Sandbox Code Playgroud)

客户端

(注意:我从服务器运行它们只是为了做例子,更喜欢其他主机来检查防火墙设置......)

  1. ftp带有-v详细选项的命令以显示来自远程服务器的所有响应)

    $ ftp -v localhost
    Connected to localhost.
    220 (vsFTPd 3.0.2)
    Name (localhost:sneetsher):      
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> 
    
    Run Code Online (Sandbox Code Playgroud)
  2. FileZilla。它有非常详细的日志,但它会根据设置发送几个命令,而这些命令并不总是你想要的。

    Status: Resolving address of localhost
    Status: Connecting to 127.0.0.1:21...
    Status: Connection established, waiting for welcome message...
    Response:   220 (vsFTPd 3.0.2)
    Command:    USER sneetsher
    Response:   331 Please specify the password.
    Command:    PASS ********
    Response:   230 Login successful.
    Command:    SYST
    Response:   215 UNIX Type: L8
    Command:    FEAT
    Response:   211-Features:
    Response:    EPRT
    Response:    EPSV
    Response:    MDTM
    Response:    PASV
    Response:    REST STREAM
    Response:    SIZE
    Response:    TVFS
    Response:    UTF8
    Response:   211 End
    Command:    OPTS UTF8 ON
    Response:   200 Always in UTF8 mode.
    Status: Connected
    Status: Retrieving directory listing...
    Command:    PWD
    Response:   257 "/home/sneetsher"
    Command:    TYPE I
    Response:   200 Switching to Binary mode.
    Command:    PASV
    Response:   227 Entering Passive Mode (127,0,0,1,159,231).
    Command:    LIST
    Response:   150 Here comes the directory listing.
    Response:   226 Directory send OK.
    Status: Calculating timezone offset of server...
    Command:    MDTM 0000_12.04~
    Response:   213 20140208184211
    Status: Timezone offsets: Server: 0 seconds. Local: 0 seconds. Difference: 0 seconds.
    Status: Directory listing successful
    ...
    Status: Sending keep-alive command
    Command:    TYPE I
    Response:   200 Switching to Binary mode.
    
    Run Code Online (Sandbox Code Playgroud)

可能的测试工作流程

  1. 服务器端:更改vsftpd.conf后重启服务(无需重启VBox guest)

    sudo service vsftpd restart
    
    Run Code Online (Sandbox Code Playgroud)
  2. 客户端:可以使用yafc. 上传文件夹的示例:

    #!/bin/bash
    yafc <<**
    open ftp://username:password@hostname
    put -f -r folder
    close
    **
    exit 0
    
    Run Code Online (Sandbox Code Playgroud)

    或使用ftp

    #!/bin/sh
    HOST='ftp.users.qwest.net'
    USER='yourid'
            PASSWD='yourpw'
    FILE='file.txt'
    
    ftp -n $HOST <<END_SCRIPT
    quote USER $USER
    quote PASS $PASSWD
    put $FILE
    quit
    END_SCRIPT
    exit 0
    
    Run Code Online (Sandbox Code Playgroud)

VirtualBox 来宾上的服务器/客户端

  • 客户端应该与服务器在同一个 NAT 网络,内部网络。

  • 或者如果 Server 有 Bridged Adapter,Client 可以设置 NAT、NAT Network、Bridged Adapter。

参考: