我想在办公室电脑上建立一个 FTP 服务器。
我知道我必须转发端口 21,并且我可以在我的家庭网络中处理它。
但是在我的办公室电脑中,我的电脑前的路由器已经禁用了DHCP,而IP地址是由DHCP服务器分配的,这是我无法控制的。
如果我无法控制 DHCP 服务器,我还可以在路由器上设置端口转发吗?或者就没有办法设置 FTP 服务器吗?
答案1
当你无法控制本地路由器时,解决办法是设置一个反向隧道。
防火墙通常以阻止来自 WAN 端的通信的方式构建,而允许来自 LAN 端的通信。反向隧道利用这一点,通过建立从 LAN 内部到外部某台 PC 的安全通道,这样,当您想要通信时从这台外部电脑到在局域网中,你会发现一个ESTABLISHED,RELATED的连接通道,这个连接通道已经被防火墙授权了。
这是通过一种类似瑞士军刀的通讯工具实现的,远程控制,它不仅可以发起从 LAN 到外部的通信,还可以携带指令来设置另一个不同的通道以允许另一种类型的通信。由于这与已建立的连接相关,因此路由器将允许它。此替代通道将被加密(因此是安全的,这是使用远程控制),并且可以承载any
以下通信形式:ftp、http、vnc、vpn,随便你怎么说(前提是这个有效载荷使用 TCP,而不是 UDP)。
反向隧道可以在任何操作系统中设置,但具体细节因操作系统而异,所以我无法更具体。使用 Google 搜索您的操作系统将允许您找到所有需要的材料。
答案2
不可以。即使您的路由器能够转发端口 21,但遗憾的是,仅转发一个端口对于 FTP 协议的实际工作来说还不够。
这与许多其他协议(如 HTTP 或 SSH)形成了鲜明对比,这些协议只需要转发一个 TCP 端口(80 或 22)。FTP 的本质是 TCP 端口 21 用于控制目的:建立连接、列出文件、创建或删除文件等。但要传输文件,FTP 需要建立单独的所谓数据连接,该连接必须使用其他端口号。建立数据连接的旧方案称为主动连接(对防火墙非常不友好),而新方案称为被动连接(与防火墙的兼容性更好,但仍然不理想)。无论如何,您需要转发多个端口,很可能是整个端口范围。您可以在此了解有关这些 FTP 问题的更多信息维基百科。
克服这些 FTP 防火墙复杂性的典型解决方案是使用只需要一个 TCP 端口转发的其他协议,例如带有 WebDav 的 HTTP/HTTPS 或 SFTP(与 FTP 没有任何共同之处,只是 SSH 的扩展)。