小乂 發表於 2023-7-28 00:00:00

linux下vsftpd的安装及配置使用详细步骤(推荐)

<p>
        vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。</p>
<p>
        vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。</p>
<p>
        比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。</p>
<p>
        vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。</p>
<p>
        <span><strong>1.1  安装</strong></span></p>
<p>
        命令:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_644693">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">yum </code><code class="bash functions">install</code> <code class="bash plain">vsftpd -y</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        配置Vsftpd</p>
<p>
        安装完之后我们要对它进行配置,才能正常使用。</p>
<p>
        编辑vsftpd的配置文件</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_74040">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">vi</code> <code class="bash plain">/etc/vsftpd/vsftpd</code><code class="bash plain">.conf</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        在配置文件中找到“anonymous_enable=YES”,将"YES"改为"No",将匿名登录禁用。</p>
<p>
        添加开机自动启动,</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_943712">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">chkconfig vsftpd on</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        不确定是否已经加入了开机启动项可以运行chkconfig –list进行查看</p>
<p>
        <strong>1.2  创建用户</strong></p>
<p>
        命令:useradd ftpuser</p>
<p>
        指定密码:passwd ftpuser</p>
<p>
        此用户就是用来登录ftp服务器用的。</p>
<p>
        这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser.</p>
<p>
        ----------------------------------------------------------------------------------------------------------------------------------</p>
<p>
        设置FTP用户的账号,例如账号为“ftpuser1”,目录为/home/ftpuser1,且设置不允许通过ssh登录。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_584974">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">useradd</code> <code class="bash plain">-d </code><code class="bash plain">/home/ftpuser</code> <code class="bash plain">-s </code><code class="bash plain">/sbin/nologin</code> <code class="bash plain">ftpuser</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        设置账号对应的密码,例如密码为“ftpuser”</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_768401">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">passwd</code> <code class="bash plain">ftpuser</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <span><strong>1.3  开启selinux权限</strong></span></p>
<p>
        VSFTPD是一个FTP服务器程序,然后SELinux是CentOS的防火墙组件。由于 vsftpd 默认被 SELinux 拦截,所以会遇到的FTP以下的问题:</p>
<p>
        1.226 Transfer done (but failed to open directory).(传输完成,但是打开路径失败)</p>
<p>
        2.550 Failed to change directory(更改路径失败)</p>
<p>
        3.<br>
        553 Could not create file.</p>
<p>
        4.</p>
<p>
        或者干脆在发送了LIST命令以后,服务器没响应,超时断开。</p>
<p>
        遇到这样的问题,通常是vsftpd 没有足够的权限,很有可能是被SELinux阻止了。</p>
<p>
        查看命令:getsebool -a | grep ftp</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_585241">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">getsebool -a | </code><code class="bash functions">grep</code> <code class="bash plain">ftpd</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments">#以下是显示出来的权限,off是关闭权限,on是打开权限</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">allow_ftpd_anon_write --&gt; off</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">allow_ftpd_full_access --&gt; off</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">allow_ftpd_use_cifs --&gt; off</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">allow_ftpd_use_nfs --&gt; off</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">ftpd_connect_db --&gt; off</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">ftpd_use_passive_mode --&gt; off</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash plain">ftp_home_dir --&gt; off</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        其中,ftp_home_dir和allow_ftpd_full_access必须为on 才能使vsftpd 具有访问ftp根目录,以及文件传输等权限。</p>
<p>
              设置命令:setsebool -p xxxxxx on</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_287458">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># setsebool -P allow_ftpd_full_access on</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># setsebool -P ftp_home_dir on</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        1.4  设置或关闭防火墙</p>
<p>
        因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件</p>
<p>
        设置:vi /etc/sysconfig/iptables</p>
<p>
        在行上面有22 -j ACCEPT 下面另起一行输入跟那行差不多的,只是把22换成21,然后:wq保存。</p>
<p>
        还要运行下,重启iptables</p>
<p>
        重启:service iptables restart</p>
<p>
        关闭防火墙:service iptables stop</p>
<p>
        禁用防火墙重启:chkconfig iptables off</p>
<p>
        1.5  启动vsftpd</p>
<p>
        命令:service vsftpd start</p>
<p>
          java客户端(代码)调用</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_971430">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                        <div class="line number26 index25 alt1">
                                                                26</div>
                                                        <div class="line number27 index26 alt2">
                                                                27</div>
                                                        <div class="line number28 index27 alt1">
                                                                28</div>
                                                        <div class="line number29 index28 alt2">
                                                                29</div>
                                                        <div class="line number30 index29 alt1">
                                                                30</div>
                                                        <div class="line number31 index30 alt2">
                                                                31</div>
                                                        <div class="line number32 index31 alt1">
                                                                32</div>
                                                        <div class="line number33 index32 alt2">
                                                                33</div>
                                                        <div class="line number34 index33 alt1">
                                                                34</div>
                                                        <div class="line number35 index34 alt2">
                                                                35</div>
                                                        <div class="line number36 index35 alt1">
                                                                36</div>
                                                        <div class="line number37 index36 alt2">
                                                                37</div>
                                                        <div class="line number38 index37 alt1">
                                                                38</div>
                                                        <div class="line number39 index38 alt2">
                                                                39</div>
                                                        <div class="line number40 index39 alt1">
                                                                40</div>
                                                        <div class="line number41 index40 alt2">
                                                                41</div>
                                                        <div class="line number42 index41 alt1">
                                                                42</div>
                                                        <div class="line number43 index42 alt2">
                                                                43</div>
                                                        <div class="line number44 index43 alt1">
                                                                44</div>
                                                        <div class="line number45 index44 alt2">
                                                                45</div>
                                                        <div class="line number46 index45 alt1">
                                                                46</div>
                                                        <div class="line number47 index46 alt2">
                                                                47</div>
                                                        <div class="line number48 index47 alt1">
                                                                48</div>
                                                        <div class="line number49 index48 alt2">
                                                                49</div>
                                                        <div class="line number50 index49 alt1">
                                                                50</div>
                                                        <div class="line number51 index50 alt2">
                                                                51</div>
                                                        <div class="line number52 index51 alt1">
                                                                52</div>
                                                        <div class="line number53 index52 alt2">
                                                                53</div>
                                                        <div class="line number54 index53 alt1">
                                                                54</div>
                                                        <div class="line number55 index54 alt2">
                                                                55</div>
                                                        <div class="line number56 index55 alt1">
                                                                56</div>
                                                        <div class="line number57 index56 alt2">
                                                                57</div>
                                                        <div class="line number58 index57 alt1">
                                                                58</div>
                                                        <div class="line number59 index58 alt2">
                                                                59</div>
                                                        <div class="line number60 index59 alt1">
                                                                60</div>
                                                        <div class="line number61 index60 alt2">
                                                                61</div>
                                                        <div class="line number62 index61 alt1">
                                                                62</div>
                                                        <div class="line number63 index62 alt2">
                                                                63</div>
                                                        <div class="line number64 index63 alt1">
                                                                64</div>
                                                        <div class="line number65 index64 alt2">
                                                                65</div>
                                                        <div class="line number66 index65 alt1">
                                                                66</div>
                                                        <div class="line number67 index66 alt2">
                                                                67</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">package com.jonychen.util;</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">import</code> <code class="bash plain">java.io.FileInputStream;</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">import</code> <code class="bash plain">java.io.FileNotFoundException;</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash functions">import</code> <code class="bash plain">java.io.IOException;</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash functions">import</code> <code class="bash plain">java.io.InputStream;</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash functions">import</code> <code class="bash plain">java.net.SocketException;</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash functions">import</code> <code class="bash plain">java.util.Date;</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash functions">import</code> <code class="bash plain">java.util.UUID;</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash functions">import</code> <code class="bash plain">org.apache.commons.net.</code><code class="bash functions">ftp</code><code class="bash plain">.FTP;</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash functions">import</code> <code class="bash plain">org.apache.commons.net.</code><code class="bash functions">ftp</code><code class="bash plain">.FTPClient;</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash plain">public class FtpUploadUtil {</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">private static ThreadLocal&lt;FTPClient&gt; threadLocal = new ThreadLocal&lt;&gt;();</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">private static ThreadLocal&lt;String&gt; threadLocalHost = new ThreadLocal&lt;&gt;();</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">public static void init(String host,int port,String username,String password) throws SocketException, IOException {</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">FTPClient client = threadLocal.get();</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">if</code><code class="bash plain">(client==null) {</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">client = new FTPClient();</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash plain">//1</code><code class="bash plain">.连接</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">client.connect(host,port);</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash plain">//2</code><code class="bash plain">.登录</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">client.login(username,password);</code>
</div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash plain">threadLocal.</code><code class="bash functions">set</code><code class="bash plain">(client);</code>
</div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">threadLocalHost.</code><code class="bash functions">set</code><code class="bash plain">(host);</code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">}</code>
</div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">}</code>
</div>
                                                                <div class="line number26 index25 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">public static String upload(InputStream </code><code class="bash functions">local</code><code class="bash plain">,String fileName,String path) throws SocketException, IOException {</code>
</div>
                                                                <div class="line number27 index26 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">String datePath = DateUtil.date2Str(new Date(),</code><code class="bash string">"/yyyy/MM/dd/"</code><code class="bash plain">);</code>
</div>
                                                                <div class="line number28 index27 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">//</code><code class="bash plain">路径添加日期</code>
</div>
                                                                <div class="line number29 index28 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">path+=datePath;</code>
</div>
                                                                <div class="line number30 index29 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">FTPClient client = threadLocal.get();</code>
</div>
                                                                <div class="line number31 index30 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">String host = threadLocalHost.get();</code>
</div>
                                                                <div class="line number32 index31 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">//3</code><code class="bash plain">.指定文件上传路径(路径不存在返回</code><code class="bash functions">false</code><code class="bash plain">)</code>
</div>
                                                                <div class="line number33 index32 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">boolean exists = client.changeWorkingDirectory(path);</code>
</div>
                                                                <div class="line number34 index33 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">if</code><code class="bash plain">(!exists) {</code>
</div>
                                                                <div class="line number35 index34 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">String pathArray[] = path.</code><code class="bash functions">split</code><code class="bash plain">(</code><code class="bash string">"/"</code><code class="bash plain">);</code>
</div>
                                                                <div class="line number36 index35 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash plain">String temp = </code><code class="bash string">"/"</code><code class="bash plain">;</code>
</div>
                                                                <div class="line number37 index36 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash keyword">for</code><code class="bash plain">(String p:pathArray) {</code>
</div>
                                                                <div class="line number38 index37 alt1">
                                                                        <code class="bash spaces">        </code><code class="bash plain">temp+=(p+</code><code class="bash string">"/"</code><code class="bash plain">);</code>
</div>
                                                                <div class="line number39 index38 alt2">
                                                                        <code class="bash spaces">        </code><code class="bash plain">//4</code><code class="bash plain">.如果文件路径不存在,则创建(一次只能创建一级目录)</code>
</div>
                                                                <div class="line number40 index39 alt1">
                                                                        <code class="bash spaces">        </code><code class="bash plain">client.makeDirectory(temp);</code>
</div>
                                                                <div class="line number41 index40 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">}</code>
</div>
                                                                <div class="line number42 index41 alt1">
                                                                        <code class="bash spaces">      </code><code class="bash plain">//</code><code class="bash plain">重新指定文件上传路径</code>
</div>
                                                                <div class="line number43 index42 alt2">
                                                                        <code class="bash spaces">      </code><code class="bash plain">client.changeWorkingDirectory(path);</code>
</div>
                                                                <div class="line number44 index43 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">}</code>
</div>
                                                                <div class="line number45 index44 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">//5</code><code class="bash plain">.指定文件类型</code>
</div>
                                                                <div class="line number46 index45 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">client.setFileType(FTP.BINARY_FILE_TYPE);</code>
</div>
                                                                <div class="line number47 index46 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">//</code><code class="bash plain">获取后缀</code>
</div>
                                                                <div class="line number48 index47 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">String suffix = fileName.substring(fileName.lastIndexOf(</code><code class="bash string">"."</code><code class="bash plain">));</code>
</div>
                                                                <div class="line number49 index48 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">String uuid = UUID.randomUUID().toString();</code>
</div>
                                                                <div class="line number50 index49 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">//6</code><code class="bash plain">.执行上传</code>
</div>
                                                                <div class="line number51 index50 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">client.storeFile(uuid+suffix, </code><code class="bash functions">local</code><code class="bash plain">);</code>
</div>
                                                                <div class="line number52 index51 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">//7</code><code class="bash plain">.退出</code>
</div>
                                                                <div class="line number53 index52 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">client.</code><code class="bash functions">logout</code><code class="bash plain">();</code>
</div>
                                                                <div class="line number54 index53 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">//8</code><code class="bash plain">.断开连接</code>
</div>
                                                                <div class="line number55 index54 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">client.disconnect();</code>
</div>
                                                                <div class="line number56 index55 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">threadLocalHost.remove();</code>
</div>
                                                                <div class="line number57 index56 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">threadLocal.remove();</code>
</div>
                                                                <div class="line number58 index57 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash keyword">return</code> <code class="bash string">"http://"</code><code class="bash plain">+host+</code><code class="bash string">"/jonychen"</code><code class="bash plain">+datePath+uuid+suffix;</code>
</div>
                                                                <div class="line number59 index58 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">}</code>
</div>
                                                                <div class="line number60 index59 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">public static void main(String[] args) throws SocketException, IOException {</code>
</div>
                                                                <div class="line number61 index60 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">InputStream </code><code class="bash functions">local</code> <code class="bash plain">= new FileInputStream(</code><code class="bash string">"D:\\Documents\\Pictures\\01.png"</code><code class="bash plain">);</code>
</div>
                                                                <div class="line number62 index61 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">init(</code><code class="bash string">"192.168.178.161"</code><code class="bash plain">, 21, </code><code class="bash string">"ftpuser"</code><code class="bash plain">, </code><code class="bash string">"111111"</code><code class="bash plain">);</code>
</div>
                                                                <div class="line number63 index62 alt2">
                                                                        <code class="bash plain">     </code><code class="bash plain">//</code><code class="bash plain">上传路径</code>
</div>
                                                                <div class="line number64 index63 alt1">
                                                                        <code class="bash spaces">    </code><code class="bash plain">String res = upload(</code><code class="bash functions">local</code><code class="bash plain">, </code><code class="bash string">"code.png"</code><code class="bash plain">,</code><code class="bash string">"/home/ftpuser/ego"</code><code class="bash plain">);</code>
</div>
                                                                <div class="line number65 index64 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">System.out.println(res);</code>
</div>
                                                                <div class="line number66 index65 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">}</code>
</div>
                                                                <div class="line number67 index66 alt2">
                                                                        <code class="bash plain">}</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <span><strong>总结</strong></span></p>
<p>
        以上所述是小编给大家介绍的linux下vsftpd的安装及配置使用详细步骤,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!</p>
<p>
        原文链接:https://www.cnblogs.com/lxcy/archive/2018/01/04/8196260.html</p>
頁: [1]
查看完整版本: linux下vsftpd的安装及配置使用详细步骤(推荐)