Windows Server 2012:安装IIS、FTP服务

需求:我有一台云主机,公网IP,Windows Server 2012 R2中文版操作系统。现在想通过浏览器,或Windows的文件浏览器( explorer.exe),或手机等客户端进行文件读写访问操作。其实,Windows Server 2008、2016之类的配置差不多。

解决方案:FTP服务器(原生态)。为了操作更方便,可以用第三方服务器端、客户端进行控制。Windows下有FileZilla等工具,IOS下有FTPManager(有免费版,也有付费版)

关键步骤:安装IIS,配置FTP,访问。

什么是IIS?个人感觉,有点像个主机、站点的样子吧,直观感受。可以部署网站、FTP服务器、SMTP服务器等。

所属领域:计算机网络(最高层,应用层)

疑惑(待查证):如果用第三方FTP的软件,例如FileZilla,好像在Windows Server中连IIS和FTP都不用安装和设置,直接在FileZilla中设置好了,就可以访问了。


最终效果

目前,只共享了一个文件夹。以后要加上不同物理路径的文件夹共同共享,在FTP路径上却以父子关系显示(相当于是给路径取 别名,虚拟路径)。


可以用浏览器访问。

扫描二维码关注公众号,回复: 2681476 查看本文章


可以在我的电脑里访问。


还可以在其他客户端里访问。



本文主要总结安装并开启IIS、FTP的过程。

服务器管理器 - 添加角色和功能,后来选中Web服务器(IIS),坐等安装完毕即可。





我是已经安装好了再来写的这篇文章,所以当然是已安装了…


检查:IIS服务器是否安装并成功启动


浏览器中输IP、端口号,访问即可。


注意:修改默认端口号、防火墙设置。

1. IIS的默认站点,其默认端口号是80,在CMD中输入 netstat -ano | more 命令可查看端口占用情况。

若需要更改端口号,可以到计算机管理等地方修改。对准网站Default Web Site右键,编辑绑定,修改端口即可。


2. 本地可以访问,其他机器不能访问主页,还有可能是防火墙把端口拦住了。新建一个入站规则(自行百度)。

3. 如果其他计算机无法Ping通这台服务器,请参考:xxx(以后补充)


FTP

以下先说操作系统原生态的FTP。

网站 - 右键 - 添加FTP站点,选择物理路径


绑定和SSL设置,暂时选无(我也不知道SSL有什么用)。


身份验证和授权信息,指定用户填此计算机(云主机)上的用户,设置读写权限。



检查:FTP服务是否已经启动

浏览器访问:注意,一定是ftp://开头,否则默认是http!

(FTP端口默认是21,该端口是否在监听,或者FTP是否已经在启动,请用 netstat -ano | more 命令查看)

输入用户名、密码即可(刚刚授权的用户)


同样,也可以用资源管理器访问。


更加方便,支持文件拖拉上传、下载。当然,要有权限。


FileZilla

在云主机上下载并安装它的服务器端软件(只支持windows),在自己的电脑上装上它的客户端软件。

启动服务端


选择用户


填写可以登录的用户名和密码(可以不是这台云主机的Windows用户,好像是任意都行)


添加共享文件夹。Shared Folders。


客户端

1. 用浏览器、Windows资源管理器都可以访问。

2. 也可以用它配套的客户端软件。界面更友好。

3. FileZilla甚至可以支持文件的断点续传。非常推荐。

4. Beyond Compare这个软件虽然看起来更好(例如同步文件夹等),但却是收费的。

填好主机IP地址,用户名(刚刚在服务器端软件中设置的)和密码,快速连接,即可。

快速连接很简陋,建议采用新建站点的方式。



注意:

用FTP上传文件以后,默认情况下你会发现文件的修改日期变了!修改日期会变成FTP文件传输时候的时间。

请设置,保留传输文件的时间戳!



我还是建议用 FileZilla 来实现FTP服务器的C/S两端。


补充材料

1. FileZilla的服务器端提示,You appear to be behind a  NAT router. Please configure the passive mode settings and forward a range of ports in your router. 

关于FTP的主动模式和被动模式

详细内容请百度。

这里简要概述。FTP是一种基于TCP的协议。其默认端口21号为命令路径,相当于该端口用来传输信令/命令/指令。此外,还需要开启另一个端口来发送数据,相当于真正的数据链路。

主动(Port)或被动(Passive)是站在FTP服务器端的角度来看。主动,是FTP客户端(通过21端口)连接FTP服务器端时,告诉它自己开放了什么端口(例如x),服务器可以通过x端口与客户端进行数据传输。然而,当客户端在内网(不是公网IP)获取 使内网IP,并采用NAT技术做端口转发,主动模式可能会失效。因为服务器无法通过外网访问内网的 IP : Port(如192.168.0.102: 22),只能是服务器端和客户端都在内网。被动模式是服务器端开放另一个端口y作为数据内容传输端口,并通过信令链路(21端口)告诉客户端其y端口为数据端口。之后,客户端再通过服务器的y端口与服务器进行正式的数据交互。一般来讲,服务器的IP为公网IP。(如果客户端都连不上服务器端,干嘛做公网FTP?只能做内网FTP了吧)。

在FileZilla服务端设置好被动模式时开放的端口和服务器的公网IP。网上有人说要开20个连续的数据端口,才可以访问。但我亲测发现开放1个即可。图中设置的是60000号。


在服务器的防火墙中建立2条入站规则。

a) 21端口,FTP默认的信令端口,TCP

b) 刚刚设置的60000号作为数据端口,TCP


2. FileZilla警告:warning: FTP over TLS is not enabled, users connot securely log in.

客户端登录时,有时会被拒绝:不安全的服务器,不支持 FTP over TLS。

这是两边设置不匹配所造成的。



要么,服务器那边不管,客户端这边改设置。当然,这不安全(我还没有去抓包看密码是否是通过明文传递)。

Review: FTP:FileZilla无法连接到服务器,不安全的服务器


要么,去服务器端改设置。

服务器端:



客户端:

若加密选项仍然是普通FTP(不加密,还是可以登录)。

若加密选项选择“如果可用,使用显示的FTP over TLS”,再次连接时,会收到一份证书验证身份(其实我一直不明白这种验证是给谁看的。难道是说给用户看?如果用户发现证书上的信息和事前约定的不一样,就不要去登录了?)

对话框上写清楚了。请(用户)小心验证证书以确信改服务器可信任(上面的内容和事前约定的一样)。


此时,用客户端访问时,还是会被拒绝。


在服务器端选择 Disable IP Check,即可访问(然而暂时并不知道是为什么)。



关于IIS,摘自百度百科。

IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

IIS的安全脆弱性曾长时间被业内诟病,一旦IIS出现远程执行漏洞威胁将会非常严重。远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。 成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码,可以导致IIS服务器所在机器蓝屏或读取其内存中的机密数据。

猜你喜欢

转载自blog.csdn.net/qcyfred/article/details/80595160