在端口 80 上运行 FTP 服务器以及网络流量

在端口 80 上运行 FTP 服务器以及网络流量

我在 win 2k3 服务器上运行了两个站点 + IIS 虚拟文件夹 (w3root) 的 IIS。我想知道是否有任何方法可以通过使用 ftp 服务器上的端口 80 在该管道上搭载 FTP 流量。

我该如何做到这一点并且仍然保持网络服务不间断地运行?

答案1

不可以,您不能在同一 IP 地址的同一 TCP 端口上运行 HTTP 和 FTP。如果您正在寻找通过端口 80 将文件上传到 Web 服务器的方法,WebDAV可能是一种选择。

您可能对以下方面感兴趣在 Server 2003 上使用 WebDAV 与 IIS 的教程。 

别忘了安全!FTP 是一种过时且不安全的协议,除了匿名下载外,永远不应在公共互联网上使用。FTP 以纯文本形式发送您的用户名/密码和数据。SFTP 和 FTPS 是合理的替代方案。

如果您无法始终使用 SSL,请启用摘要式身份验证将阻止您的 WebDAV 登录密码以纯文本形式发送。

答案2

您可以只使用 HTTP 服务器来提供目录服务。

另外,您可以使用 squid 代理将一些请求放到您的 http 服务器上,并将其他 (http) 请求询问给 ftp 服务器。

但是不,原则上你不能在一个端口上放置两个程序。

答案3

您还可以添加FTP 绑定到站点。它不会在端口 80 上运行,但允许针对相同内容文件夹使用 FTP。

答案4

您可以使用端口统一将两种协议绑定到同一个端口上。不过,您可能必须编写自己的应用程序来监听该端口,方式类似于安全组做。

本质上,此应用程序将监听端口 80,并根据收到的内容分派请求。由于 HTTP 是客户端先对话的协议,而 FTP 是服务器先对话的协议,因此您必须等待 x 毫秒才能查看客户端是否已发送 HTTP 请求。如果是,则将其分派到您的实际 HTTP 服务器(可能实际上在另一个端口上运行),否则,将连接分派到您的 FTP 服务器。

原则上,您可以有多个客户端首先对话的协议,然后尝试通过查看请求来检测使用哪种协议。您不能有多个服务器首先对话的协议。

这显然不是解决这个问题的“干净”方法,它主要是一种变通方法,可能在您无法控制网络且有人对您可以使用的端口设置限制(可能是任意的)的环境中有用。否则,最好坚持使用每个协议的官方端口。如果您只能使用 HTTP,WebDAV 可以成为 FTP 的合理替代方案。

相关内容