Windows云主机
添加IIS以及FTP服务角色
- 登录弹性云主机。
- 选择“开始 > 服务器管理器”。
- 单击“添加角色和功能”。
- 在弹出的“开始之前”对话框中,单击“下一步”。
- 选择“基于角色或基于功能的安装”,单击“下一步”。
- 选择需要部署FTP的服务器,单击“下一步”。
- 选择“ Web服务器(IIS)”,并在弹出的对话框中单击“添加功能”,然后单击“下一步”。
- 连续单击“下一步”,到“角色服务”页面。
- 选择“FTP服务器” 以及“IIS管理控制台”,单击“下一步”。
- 单击“安装”,开始部署服务角色。
- 安装完成后,单击“关闭”。
创建FTP用户名及密码
创建Windows用户名和密码,用于FTP使用。如果您希望匿名用户可以访问,可以不创建FTP用户和密码。
- 在“服务器管理器”中,选择“仪表板 > 工具 > 计算机管理”。
- 选择“系统工具 > 本地用户和组 > 用户”,在右侧空白处右击,并选择“新用户”。
- 设置“用户名”和“密码”,此处用户名以“ftpadmin”为例。
设置共享文件的权限
需要在FTP站点为共享给用户的文件夹设置访问及修改等权限。
- 在服务器上创建一个供FTP使用的文件夹,选择文件夹,并单击右键选择“属性”。此处以“work01”文件夹为例。
- 在“安全”页签,选择 “Everyone”,单击“编辑”。如果没有“Everyone”用户可以直接选择,需要先进行添加。
- 选择“Everyone”,然后根据需要,选择“Everyone”的权限,并单击“确定”。此处以允许所有权限为例。
添加及设置FTP站点
- 在“服务器管理器”中,选择“仪表板 > 工具 > Internet Information Services (IIS)管理器 ”。
- 选择“网站”并单击右键,然后选择“添加FTP站点”。
- 在弹出的窗口中,填写FTP站点名称及共享文件夹的物理路径,然后单击“下一步”。此处站点名称以“FTPSERVER”为例。
- 输入该弹性云主机的公网IP地址以及端口号,并设置SSL,单击“下一步”。端口号默认为21,也可自行设置 。
- SSL根据需要进行设置。
- 无:不需要SSL加密。
- 允许:允许FTP服务器与客户端的非SSL和SSL连接。
- 需要:需要对FTP服务器和客户端之间的通信进行SSL加密。
说明 :当SSL选择“允许”和“需要”时,需要选择SSL证书。可以选择已有的SSL证书,也可以制作一个SSL证书,具体制作证书的方法请参见制作服务器证书。
- 设置身份认证和授权信息,并单击“完成”。
- 身份认证
- 匿名 : 允许任何仅提供用户名 “anonymous” 或 “ftp” 的用户访问内容。
- 基本 : 需要用户提供有效用户名和密码才能访问内容。但是基本身份验证通过网络传输密码时不加密,因此建议在确认客户端和FTP服务器之间的网络连接安全时使用此身份验证方法。
- 授权
- 允许访问
- 权限:选择经过授权的用户的“读取”和“写入”权限。
- 所有用户 : 所有用户均可访问相应内容。
- 匿名用户 : 匿名用户可访问相应内容。
- 指定角色或用户组:仅指定的角色或用户组的成员才能访问相应内容。如果选择此项,需要在下面输入框中输入指定的角色或用户组。
- 指定用户:仅指定的用户才能访问相应内容。如果选择此项,需要在下面输入框中输入指定的用户。
- 绑定弹性云主机的私网IP。选择“网站”,选中创建的FTP站点,单击“绑定”;在弹出的“网站绑定”窗口单击“添加”,然后在弹出的窗口中添加弹性云主机的私网IP地址,并单击“确定”。
可选)配置FTP防火墙支持
如果需要使用FTP服务器的被动模式,则需要配置FTP防火墙支持。
如果天翼云上的服务器需要通过公网IP地址访问天翼云上的实例搭建的FTP服务器时,需要配置FTP服务器的被动模式。
- 双击“FTP防火墙支持”,打开FTP防火墙支持的配置界面。
- 配置相关参数,并单击“应用”。
数据通道端口范围:指定用于被动连接的端口范围。可指定的有效端口范围为1025-65535。请根据实际需求进行设置。
防火墙的外部IP地址:输入该弹性云主机的公网IP地址。
- 重启云主机使防火墙配置生效。
设置安全组及防火墙
搭建好FTP站点后,需要在弹性云主机安全组的入方向添加一条放行FTP端口的规则,具体步骤参见虚拟私有云-安全组-添加安全组规则。
如果配置了“FTP防火墙支持”,需要在安全组中同时放行FTP站点使用的端口和FTP防火墙使用的数据通道端口。
服务器防火墙默认放行TCP的21端口用于FTP服务。如果选用其他端口,需要在防火墙中添加一条放行此端口的入站规则。
客户端测试
打开客户端的计算机,在路径栏输入 “ftp://FTP服务器IP地址:FTP端口”(如果不填端口则默认访问21端口) 。弹出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对 FTP 文件进行相应权限的操作。
说明: 如果没有配置“FTP防火墙支持”,客户端使用此方法访问FTP站点时,需要对IE浏览器进行设置,才能打开FTP的文件夹。打开IE浏览器,选择“设置 > Internet 选项 > 高级”。勾选“启用FTP文件夹视图”,取消勾选“使用被动FTP”。
FAQ
使用Windows系统搭建FTP站点的更多信息请参见微软官方文档。
如果设置文件夹的属性时,没有“Everyone”用户可直接选择,可按照如下步骤添加“Everyone”用户。
- 在“安全”页签,单击“编辑”。
- 在新弹出的窗口中,单击“添加”。
- 在新弹出的窗口中,单击“高级”。
- 在新弹出的窗口中,单击“立即查找(N)”,然后在搜索结果中选择“Everyone”并单击“确定”。
- 单击“确定”,返回权限窗口。
- 单击“确定”,完成添加。
- 制作服务器证书。
1)在“服务器管理器”中,选择“仪表板 > 工具 > Internet Information Services (IIS)管理器 ”。
2)在左侧列表单击服务器,然后在服务器主页“IIS”区域,双击“服务器证书”,进入“服务器证书”页面。
3)单击“创建自签名证书”。
4)输入证书的名称,并选择证书存储类型,单击“确定”。
5)创建成功后会在服务器证书界面显示已经创建的证书。
Linux云主机
安装vsftpd
- 登录弹性云主机。
- 执行以下命令安装vsftpd。
yum install -y vsftpd
回显如下类似信息时,表示软件安装成功。
- 执行以下命令设置FTP服务开机自启动。
systemctl enable vsftpd.service
- 执行以下命令启动FTP服务。
systemctl start vsftpd.service
- 执行以下命令查看FTP服务端口。
netstat -antup | grep ftp
回显如下类似信息。
配置vsftpd
vsftpd安装后默认开启了匿名FTP的功能,使用匿名FTP,用户无需输入用户名密码即可登录FTP 服务器,但没有权限修改或上传文件。用户如果试图使用Linux操作系统中的账号登录服务器,将会被vsftpd拒绝,但可以在vsftpd里配置用户账号和密码登录。以下操作以在vsftpd 里配置用户账号和密码登录FTP服务器为例。
- 执行以下命令创建“ftpadmin”用户。此处“ftpadmin”用户为示例,可根据实际情况创建相应的用户。
useradd ftpadmin
- 执行以下命令并按照提示设置“ftpadmin”用户密码。
passwd ftpadmin
- 执行以下命令创建供FTP使用的文件目录,此处以“/var/ftp/work01”为例。
mkdir /var/ftp/work01
- 执行以下命令将创建的文件目录所有者改为用于登录FTP的本地用户。
chown -R ftpadmin:ftpadmin /var/ftp/work01
- 修改“vsftpd.conf”配置文件。
1)执行以下命令打开配置文件“vsftpd.conf”。
vi /etc/vsftpd/vsftpd.conf
- 按i键进入编辑模式。
修改打开的“vsftpd.conf”文件。可根据实际需求选择将FTP配置为主动模式或者被动模式。如果天翼云上的服务器需要通过公网IP地址访问天翼云上的实例搭建的FTP服务器时,需要将FTP服务器配置为被动模式。
主动模式需要配置的参数如下:
#设置以下参数,不允许匿名登录FTP服务器,允许本地用户登录FTP服务器,并指定FTP本地用户使用的文件目录。
anonymous_enable=NO #不允许匿名登录FTP服务器
local_enable=YES #允许本地用户登录FTP服务器
local_root=/var/ftp/work01 #FTP本地用户使用的文件目录
#设置以下参数,限制用户只能访问自身的主目录。
chroot_local_user=YES #所有用户都被限制在其主目录
chroot_list_enable=YES #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list #例外用户名单
allow_writeable_chroot=YES
被动模式除了需要配置主动模式所需的所有参数外,还需要配置的参数如下:
#设置以下参数,配置FTP支持被动模式。并指定FTP服务器的公网IP地址,以及可供访问的端口范围,端口范围请根据实际环境进行设置。
listen=YES
listen_ipv6=NO
pasv_address=xx.xx.xx.xx #FTP服务器的公网IP地址
pasv_min_port=3000 #被动模式下的最小端口
pasv_max_port=3100 #被动模式下的最大端口
III.按Esc键退出编辑模式,并输入:wq保存后退出
IV.在“/etc/vsftpd/”目录下创建“chroot_list”文件。
touch chroot_list
“chroot_list”文件是限制在主目录下的例外用户名单。如果需要设置某个用户不受只可以访问其主目录的限制,可将对应的用户名写入该文件。如果没有例外也必须要有“chroot_list”文件,内容可为空。
- 执行以下命令重启vsftpd服务使配置生效。
service vsftpd restart
设置安全组
搭建好FTP站点后,需要在弹性云主机安全组的入方向添加一条放行FTP端口的规则,具体步骤参见虚拟私有云-安全组-添加安全组规则。
根据FTP的不同模式需要放通的端口如下:
- FTP为主动模式时:端口21。
- FTP为被动模式时:端口21,以及配置文件“/etc/vsftpd/vsftpd.conf”中参数“pasv_min_port”和“pasv_max_port”之间的所有端口。
客户端测试
打开客户端的计算机,在路径栏输入“ftp://FTP服务器IP地址:FTP端口”(如果不填端口则默认访问21端口) 。弹出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对FTP文件进行相应权限的操作。
说明: 如果FTP服务器配置为主动模式,客户端使用此方法访问FTP站点时,需要对IE浏览器进行设置,才能打开FTP的文件夹。打开IE浏览器,选择“工具 > Internet 选项 > 高级”。勾选“启用FTP文件夹视图”,取消勾选“使用被动FTP”。
使用浏览器访问 FTP 服务器出错时,建议您清除浏览器缓存后再尝试。