连接到NAT和防火墙后面的FTP服务器,无需端口转发

时间:2012-02-01 09:14:42

标签: c# ftp port forwarding nat

我有一个关于NAT遍历的新问题需要解决。 我正在部署一个C#应用程序,它在事件发生时启动FTP服务器。 问题是运行FTP服务器的计算机位于NAT /防火墙路由器后面,因此我无法从连接到Internet的任何外部PC访问它。 所以我希望能够从我的PC连接到FTP服务器,但端口模板不是一种选择。

我读过几篇关于打孔,UPnP等的文章,但我不能依赖UPnP,因为我不知道路由器是否支持它。

我研究过NAT遍历的问题,此时,解决此问题的唯一方法是从运行FTP服务器的计算机启动连接(换句话说,它应该充当客户端,以便NAT具有IP / PORT转换规则)。但是,我认为任何Windows FTP服务器都不具备此功能。

由于我的远程VPS服务器不是Natted,而且我可以移植任何我想要的东西,我想通过VPS在客户端和服务器之间创建一个隧道。

FTP服务器(开始连接) - > VPS --->客户(连接)

FTP服务器< --- VPS< ---客户端(回复)

然而,我不知道是否有办法做我所解释的,或者是否有一些更容易的方法来做到这一点。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

简单的解决方案是确保您的ftp服务器具有公共IP地址并侦听传入的FTP请求。

However i don't know if there's a way to do what i explained or if there's some easyer way to do that. Any help is appreciated.

使用代理调用您正在尝试使用此其他解决方案。它也类似于类似TURN的解决方案。如果配置正确且具有公共IP地址,则代理可以在服务器与代理建立连接后将流量转发到服务器。

答案 1 :(得分:0)

可以删除问题的一个解决方案是向包含此内容的服务器添加规则:您的应用程序名称(或您使用的端口,我不建议这样做)并允许操作。 仅供参考,这不是编程解决方案,但它是一种网络解决方案。