Linux实例搭建FTP站点
<p>步骤一:安装vsftpd</p>
<p>步骤二:配置vsftpd</p>
<p>步骤三:设置安全组</p>
<p>步骤四:客户端测试</p>
<p>vsftpd全称very secure FTP daemon,是一款在Linux发行版中使用较多的开源FTP服务器软件,具有小巧轻快、安全易用等特点。本文介绍Linux实例如何搭建FTP站点,以CentOS7.6-64Bit为例。</p>
<p><span style="font-size:16px"><strong>操作步骤</strong></span></p>
<p><span style="font-size:16px"><strong>步骤一:安装vsftpd</strong></span></p>
<p>1. 登录<a href="https://pinganyun.com/ssr/help/compute/ecs/manual.Instance.Login_Linux_Instance.Console_Remote_Login" target="_blank">云服务器ECS</a>。</p>
<p>2. 安装vsftpd,执行以下命令:</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>yum install -y vsftpd</strong></td>
</tr>
</tbody>
</table>
<p>显示如下信息,表示软件安装成功。</p>
<p><img src="https://pcp-portal-sca.obs-cn-shenzhen.pinganyun.com/pcp-portal-sca/20192507182233-159f0e7d9b4c.png" style="height:368px; width:830px" /></p>
<p>3. 执行以下命令设置FTP服务开机自启动。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>systemctl enable vsftpd.service </strong></td>
</tr>
</tbody>
</table>
<p>4. 执行以下命令启动FTP服务。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>systemctl start vsftpd.service</strong></td>
</tr>
</tbody>
</table>
<p>5. 执行以下命令查看FTP服务端口。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>netstat -antup | grep ftp</strong></td>
</tr>
</tbody>
</table>
<p> </p>
<p><span style="font-size:16px"><strong>步骤二:配置vsftpd</strong></span></p>
<p>安装完vsftpd后,默认开启了匿名FTP的功能。使用匿名FTP,您无需输入用户名和密码即可登录FTP 服务器,但是没有修改或上传文件的权限,匿名访问FTP服务器不安全,这种方式一般只用来保持不重要的对外文件,不推荐在生产环境中使用。</p>
<p>若您使用Linux操作系统中的账号登录服务器,会被vsftpd拒绝,您可以在vsftpd里配置用户账号和密码登录,以下操作介绍了在vsftpd 里配置用户账号和密码登录FTP服务器。</p>
<p>1. 执行以下命令为FTP服务创建一个Linux用户。本例中用户名为ftptest。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>useradd ftptest</strong></td>
</tr>
</tbody>
</table>
<p>2. 执行以下命令并输入设置的ftptest用户的密码。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>passwd ftptest</strong></td>
</tr>
</tbody>
</table>
<p>3. 执行以下命令创建一个供FTP使用的文件目录,本例中为/var/ftp/test01。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>mkdir /var/ftp/test01</strong></td>
</tr>
</tbody>
</table>
<p>4. 执行以下命令将创建的文件目录所有者改为用于登录FTP的本地用户。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>chown -R ftptest:ftptest /var/ftp/test01</strong></td>
</tr>
</tbody>
</table>
<p>5. 修改vsftpd.conf的配置文件。</p>
<p>a. 执行以下命令打开配置文件vsftpd.conf。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px"><strong>vi /etc/vsftpd/vsftpd.conf</strong></td>
</tr>
</tbody>
</table>
<p>b. 按i键进入编辑模式。</p>
<p>c. 修改打开的vsftpd.conf文件。</p>
<p>您可根据实际业务需求将FTP配置为主动模式或者被动模式。</p>
<ul>
<li><strong>主动模式:</strong>客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口,参数如下:</li>
</ul>
<table border="1" cellpadding="0" cellspacing="0" style="width:801px">
<tbody>
<tr>
<td colspan="2" style="background-color:#ededed; vertical-align:top; width:797px">
<p>#设置以下参数,不允许匿名登录FTP服务器,允许本地用户登录FTP服务器,并指定FTP本地用户使用的文件目录。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>anonymous_enable=NO </p>
</td>
<td style="vertical-align:top; width:501px">
<p>#不允许匿名登录FTP服务器</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>local_enable=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p>#允许本地用户登录FTP服务器</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>local_root=<strong>/var/ftp/test01</strong></p>
</td>
<td style="vertical-align:top; width:501px">
<p>#FTP本地用户登录后使用的文件目录</p>
</td>
</tr>
<tr>
<td colspan="2" style="background-color:#ededed; vertical-align:top; width:797px">
<p>#设置以下参数,限制用户只能访问自身的主目录。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>chroot_local_user=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p>#所有用户被限制在主目录</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>chroot_list_enable=YES </p>
</td>
<td style="vertical-align:top; width:501px">
<p>#启用例外用户名单</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>chroot_list_file=/etc/vsftpd/chroot_list</p>
</td>
<td style="vertical-align:top; width:501px">
<p>#指定例外用户名单,这些用户没有被锁定在主目录</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>allow_writeable_chroot=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td colspan="2" style="background-color:#ededed; vertical-align:top; width:797px">
<p>#配置其他参数</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>local_umask=022</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>dirmessage_enable=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>xferlog_enable=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>connect_from_port_20=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>xferlog_std_format=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>listen=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>pam_service_name=vsftpd</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>userlist_enable=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>tcp_wrappers=YES</p>
</td>
<td style="vertical-align:top; width:501px">
<p> </p>
</td>
</tr>
</tbody>
</table>
<ul>
<li><strong>被动模式:</strong>服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您除了需要配置主动模式所需的所有参数外,还需要配置如下参数:</li>
</ul>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td colspan="2" style="background-color:#ededed; vertical-align:top">
<p>#设置以下参数,配置FTP支持被动模式,并指定FTP服务器的公网IP地址和可供访问的端口范围,您可根据实际环境配置端口范围。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>listen=YES</p>
</td>
<td style="vertical-align:top">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>listen_ipv6=NO</p>
</td>
<td style="vertical-align:top">
<p> </p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>pasv_address=xx.xx.xx.xx</p>
</td>
<td style="vertical-align:top">
<p>#FTP服务器的公网IP地址</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>pasv_min_port=port number</p>
</td>
<td style="vertical-align:top">
<p>#设置被动模式下的最小端口</p>
</td>
</tr>
<tr>
<td style="vertical-align:top">
<p>pasv_max_port=port number </p>
</td>
<td style="vertical-align:top">
<p>#设置被动模式下的最大端口</p>
</td>
</tr>
</tbody>
</table>
<p>d. 按Esc键退出编辑模式,输入<strong>:wq</strong>保存后退出。</p>
<p>e. 在/etc/vsftpd/目录下创建chroot_list文件。</p>
<p><strong>说明:</strong>chroot_list文件是限制在主目录下的例外用户名单,若您需要设置某个用户不受仅可以访问其主目录的限制,可将对应的用户名写入该文件,若没有例外也必须要有chroot_list文件,内容可以为空。</p>
<p>6. 执行以下命令重启vsftpd服务使配置生效。</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:793px">
<tbody>
<tr>
<td style="background-color:#ededed; width:785px">service vsftpd restart</td>
</tr>
</tbody>
</table>
<p> </p>
<p><span style="font-size:16px"><strong>步骤三:设置安全组</strong></span></p>
<p>搭建好FTP站点后,需要在云服务器ECS实例安全组的入方向配置一条放行FTP端口的规则,可参考配置安全组规则。</p>
<ul>
<li><strong>FTP 为主动模式:</strong>端口21。</li>
<li><strong>FTP 为被动模式:</strong>端口21,配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。</li>
</ul>
<p><span style="font-size:16px"><strong>步骤四:客户端测试</strong></span></p>
<p>1. 打开客户端IE浏览器。</p>
<p>2. 设置浏览器访问模式,选择<strong>设置</strong><strong> > Internet </strong><strong>选项 > </strong><strong>高级</strong>,勾选<strong>启用</strong><strong>FTP </strong><strong>文件夹视图</strong>。若为主动访问模式,取消勾选<strong>使用被动</strong><strong> FTP</strong>;若为被动模式勾选<strong>使用被动</strong><strong> FTP</strong>。</p>
<p>3. 在路径栏输入:<strong>ftp://FTP</strong><strong>服务器IP</strong><strong>地址:FTP</strong><strong>端口</strong>,例如:ftp:// 101.89.95.105:21。</p>
<p><strong>说明:若</strong>不填端口信息,则默认访问21端口。</p>
<p>4. 弹出输入用户名和密码的对话框,表示配置成功,输入正确的用户名和密码,即可对 FTP 文件进行相应权限的操作。</p>
提交成功!非常感谢您的反馈,我们会继续努力做到更好!