1

我知道ipchicken.com会告诉你路由器的 IP 地址和它用于连接的端口。但是这些信息可以“本地”获得吗?(不依赖网站)。

我想要的是在两个随机主机之间建立连接……中间没有“专用服务器”。我的问题是通过 NAT 到达。我认为最好的选择是一种 TCP 打孔,两台主机都连接到某个地方,然后相互告知(可以通过电话或聊天或类似方式)当前的 IP 地址和路由器正在使用的端口号。它应该欺骗路由器将数据包转发到主机,尽管来自与它们最初连接的不同来源。

是否有可能以比ipchicken.com更本地的方式找到您的路由器用来修补您的端口号?对解决此问题的其他可能方法有什么想法吗?

编辑:在这种情况下,在路由器上设置端口转发不是一个选项,因为很多人(包括我)对他们的路由器没有管理员权限,我不想将这样的任务强加给我的应用程序的“用户”

4

2 回答 2

2

路由器将为每个传出连接使用不同的源端口,因此基于传出连接的检查不适用于您的用例。

对于传入连接,即,如果您想访问 NAT 设备后面的特定机器(如家庭路由器),您必须明确打开路由器上的一些端口并设置转发规则。然后,路由器将侦听该端口上的传入连接,并根据配置的规则将其转发到 machine:port。

你如何做到这一点取决于特定的路由器品牌/型号。搜索网页或登录到管理界面并环顾四周,应该很容易找到。但是,请确保您了解在路由器上打开端口的安全隐患!

基于已编辑问题的更新:

如果没有端口转发并且两个设备都在 NAT 之后,您唯一的解决方案是拥有一个中间服务器!如果其中只有一个在 NAT 之后,您可以让该机器启动连接。

于 2013-04-24T05:31:04.690 回答
-1

您可以使用 Stun 服务器作为外部全局可访问服务器。

于 2013-11-22T21:21:30.103 回答