我有一个关于NAT穿越的新问题要解决。我正在部署一个当事件发生时启动C#服务器的FTP应用程序。问题是,运行FTP服务器的计算机位于NAT/防火墙路由器之后,因此我无法从任何连接到Internet的外部PC访问它。因此,我希望能够从我的PC连接到FTP服务器,但端口转发不是一个选项。
我读过几篇关于打孔、UPnP等的文章,但我不能依赖UPnP,因为我不知道路由器是否支持它。
我已经研究了NAT穿越的问题,在这一点上,解决这个问题的唯一方法是从运行FTP服务器的机器发起连接(换句话说,它应该充当客户端,以便NAT具有IP/端口转换的规则)。然而,我不认为任何Windows FTP服务器都有这个功能。
因为我有一个远程的VPS服务器没有Natted,我可以在那里端口转发我想要的任何东西,我想通过VPS在客户端和服务器之间创建一个隧道。
FTP服务器(启动到的连接) --> VPS ->客户端(连接)
FTP服务器<- VPS <-客户端(回复)
然而,我不知道是否有我解释的方法,或者是否有更容易的方法来做到这一点。任何帮助都是非常感谢的。
发布于 2012-03-13 00:32:21
简单的解决方案是确保您的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.您尝试使用另一个解决方案所做的操作称为使用代理。它也类似于一个类似转弯的解决方案。如果配置正确并且具有公共IP地址,则一旦您的服务器与代理建立连接,代理就可以将流量转发到您的服务器。
发布于 2016-01-20 17:06:57
一种可能会消除问题的解决方案是向服务器添加一个规则,其中包含以下内容:您的应用程序名称(或您使用的端口,我不建议这样做)并允许操作。仅供参考,这不是编程解决方案,而是网络解决方案。
https://stackoverflow.com/questions/9093294
复制相似问题