标签: nat

udp打孔器和端口限制锥NAT

我想了解当端口限制锥NAT后面的两台主机分别建立连接时,udp打孔的工作原理。

据我了解,它分为几个阶段,涉及三个主机。

主机A和主机B在端口受限锥形NAT的后面。

主机C是可以从主机A和B接收数据包的服务器。

  1. A向C发送数据包。
  2. C从A接收数据包并确定A的外部地址:端口对
  3. B向C发送数据包。
  4. C从B接收数据包并确定B的外部地址:端口对
  5. C将外部地址:B的端口发送到A
  6. C将外部地址:A的端口发送到B
  7. A将数据包_1发送到B的外部地址
  8. B将数据包_2发送到A的外部地址

问题是:

受限锥NAT后面的A如何从也位于受限锥NAT后面的B接收数据包?

端口受限锥形NAT不允许接收源地址:端口对与它发送的目标地址:端口对不匹配的数据包。为什么在A和B之间发送的其他数据包到达A和B?

是否因为端口受限锥NAT将packet_2视为来自B的响应?

因此,数据包_1将丢失,但数据包_2到达B。我是对的吗?

先感谢您。

udp nat hole-punching

5
推荐指数
1
解决办法
3084
查看次数

哪些构建服务器可以与NAT背后的工作人员一起工作?

我正在寻找构建服务器,自动化服务器的持续集成,这些服务器可以具有位于NAT之后且要求在客户端上具有非root用户访问权限的客户端(工作人员)。

这意味着工作是连接到服务器并要求新工作的工作,而不是相反的工作。

我知道应该可以设置VPN或反向ssh解决方案,但这不在此问题的范围内。我只是在寻找简单的设置。

continuous-integration nat build-server

5
推荐指数
1
解决办法
1101
查看次数

如何避免Coq nat中的堆栈溢出或分段错误?

我目前正在与vellvm合作,开发一个转型.我是一个新手.

编程时,我面临以下警告:

警告:在nat中使用大数字时会发生堆栈溢出或分段错误(观察到的阈值可能会在5000到70000之间变化,具体取决于您的系统限制和执行的命令).

我生成此警告的函数会计算签名.签名分为上位和下位.给定两个nat n1和n2表示高位和低位,它计算(n1*65536)+ n2 - 这是并排放置两个16位二进制数的抽象.

由于S构造函数,coq nat定义似乎从外部处理大的int,所以我感到非常惊讶.

我应该如何避免此警告/使用coq中的大数字?我愿意将实现从nat更改为某种二进制构造.

谢谢!

binary nat bignum coq

5
推荐指数
1
解决办法
234
查看次数

如何通过两级路由器向上转发端口

我正在使用java sbbi库来转发端口.但我的路由器被连接到另一个路由器,所以第一个路由器的外部IP是由第二个路由器dhcp给出的ip.有没有办法转发第二个路由器上的端口?这是我的代码:

InternetGatewayDevice[] devices=InternetGatewayDevice.getDevices( 1000 );
System.out.println("Found "+devices.length+" Devices");
InternetGatewayDevice dev = devices[ 0 ];
System.out.println(dev);
System.out.println( "External IP = " + dev.getExternalIPAddress() );

System.out.println( dev.addPortMapping( "Streamternet", "TCP", null, 1333,
                                        "192.168.0.105", 8888, 0 ) );

System.out.println( "waiting for connection" );
HTTPServer.main(null);
Run Code Online (Sandbox Code Playgroud)

java port networking upnp nat

5
推荐指数
2
解决办法
4608
查看次数

如何通过upnp以编程方式实现双NAT端口转发

我正在尝试使用UPNP实现双NAT.我的PC连接如下:
Internet - >路由器1 - >路由器2-> PC
我已成功完成路由器2上的端口转发,但无法在路由器1上进行.由于来自服务器的数据包(打开了)互联网)无法到达PC.
通过很少的文件解决了如何解决但大多发现手动方式如桥接网络或局域网线.
我正在寻找使用UPNP协议在两个路由器上进行端口转发的一些递归解决方案.我猜洪流,Skype也一样.
如何获得与路由器1相关的网络接口,然后在该网络上进行端口转发?

任何帮助将受到高度赞赏.

谢谢,
Pawan

networking routing upnp nat portforwarding

5
推荐指数
1
解决办法
3578
查看次数

Virtualbox - 配置两个VM以相互通信/主机和Internet

主持人:Windows 7运行最新的VBox +扩展包

Vm1:lubuntu 3.10 Vm2:Ubuntu服务器12.04.3

问题:无法让虚拟机互相通话/ ping并同时ping互联网

NAT:虚拟机有相同的IP,使用ping/ssh就像检查连接/连接到自己,lol; 可以ping互联网,不能互相ping通

Bridged:虚拟机获得独特的IP; 可以互相ping,而不是互联网

仅限主机:虚拟机获得唯一的IP; 可以互相ping; 不是互联网

内部网络:

intnet,需要定义/添加到Windows 7,但是,窗口7不接受VBOXMANAGE add命令,给出错误.虚拟机等待网络配置,再过60秒,无需网络即可启动.

我还可以做些什么?更改VM使用NAT网络,通用驱动程序...... ??? 编辑/ etc/network/interfaces?改变路线?用鱿鱼?

在Lunbutu GUI中弹出Lubuntu Networking Message:

网络服务发现被禁用

您的cuurent网络有一个.local域,不推荐使用该域,并且该服务已被禁用的avahi网络服务发现不兼容.

有人可以帮忙吗?

networking virtualbox loopback nat

5
推荐指数
1
解决办法
5467
查看次数

Akka远程通过互联网

我正在使用Akka 2.2.3 编写分布式BBS软件作为Scala中的远程消息传递.

然后,我发现通过NAT在Internet上进行网络连接存在一些问题:Akka无法识别外部IP地址,AFAIK因为它使用socket.bind.

接下来,我认为我可以指定0.0.0.0 akka.remote.netty.tcp.hostname,以便采用所有接口和地址来监听来自Internet端的连接.

这是问题--Akka使用0.0.0.0作为自己的IP地址,并生成ActorRef如下:akka.tcp://system@0.0.0.0/user/foo.

其他节点无法ActorRef通过Internet 使用此节点引用节点.如何通过Internet连接节点?我不能在NAT上使用Akka吗?

p2p scala nat akka

5
推荐指数
1
解决办法
780
查看次数

在IIS上使用URL重写来设置响应的Location标头

我在Windows 2008R2 IIS 7环境中部署了.Net应用程序(使用Outsystems平台构建)。该应用程序已经可以正常使用了。它通过HTTPS在端口443上处理请求,我可以毫无问题地访问它。

现在,需要使一些用户能够通过NAT访问它,该NAT配置为在端口8200上处理请求。将请求毫无问题地转发到服务器,除非响应是重定向(HTTP 302)。在这些情况下,将使用为应用程序实际提供服务的端口(即端口443)设置响应的位置标头。当客户端的浏览器尝试访问在位置标头中设置的此URL时,它将失败,因为NAT仅在端口8200中处理请求。

总共:

  • 客户端浏览器访问https://myserver:8200/myapp;
  • NAT转换URL并转发到https://myserver:443/myapp;
  • 应用程序回复302重定向到https://myserver:443/redirect
  • 客户端浏览器访问https://myserver:443/redirect;
  • NAT会阻止此访问,因为它期望使用端口8200。

这是我试图做的;我在IIS中安装了URL重写模块并创建了以下规则:

  • 将请求的主机标头(在这种情况下为https://myserver:8200)存储到服务器变量ORIGINAL_HOST 的入站规则。
  • 出站规则将响应的位置标头(https://myserver:443/redirect)中发送的URL的主机部分替换为存储在我的服务器变量ORIGINAL_HOST中的值。该规则仅在重定向的情况下适用。

我现在面临的问题是,一旦启用此规则,所有AJAX请求都将停止工作,即使该规则不适用于它们,甚至在没有通过NAT访问应用程序时也是如此。发生这种情况时,通过开发人员工具中的IE的“网络”选项卡,我可以看到请求标头和正文正常,响应标头正常,但是响应正文为空,不应如此。另外,如果我尝试使用断点在服务器上调试AJAX请求,则它不会在断点处停止。

因此,我的问题是:使用URL重写是解决NAT / URL问题的最佳方法吗?如果是这样,我该如何解决AJAX的情况?如果没有,那么我该如何解决重定向问题?

*编辑:这是我的规则配置:

先感谢您,

若昂·戈麦斯(JoãoGomes)

.net iis-7 nat outsystems url-rewrite-module

5
推荐指数
1
解决办法
3634
查看次数

能够建立从客户端到tunnel_server的VPN连接(使用Apple的SimpleTunnel应用程序),但无法在设备上浏览互联网

我构建了SimpleTunnel示例应用程序(由apple提供),并在运行OS 10.11(OS X El Capitan)的MAC上运行IOS设备上的VPN客户端和VPN服务器(tunnel_server)

在MAC: -

$ sudo ./tunnel_server 550 ../../tunnel_server/config.plist
Run Code Online (Sandbox Code Playgroud)

回应: -

tunnel_server[87725:2604682] Starting network service on port 550

tunnel_server[87725:2604682] Network service published successfully
Run Code Online (Sandbox Code Playgroud)

在IOS设备上: -

接下来,我在IOS设备上运行PacketTunnel应用程序.添加了具有正确IP地址(运行tunnel_server的MAC的IP地址)和端口号(tunnel_server的端口号为550)的VPN配置.

接下来我尝试从IO设备连接到VPN ,这看起来很好,因为我看到VPN登录状态栏.

在运行tunnel_server的屏幕上响应: -

tunnel_server[87739:2606312] Accepted a new connection

tunnel_server[87739:2606312] Allocated address Optional("10.8.0.15")
Run Code Online (Sandbox Code Playgroud)

但是我无法在IOS设备上使用Safari浏览互联网(它超时),但我可以从MAC中做同样的事情.

关于我可能缺少什么的任何见解?

请注意我的MAC没有安装OS X服务器.我还在MAC上启动tunnel_server之前从终端运行了以下两个命令

sudo sysctl net.inet.ip.forwarding=1

sudo sysctl net.inet.ip.fw.enable=1
Run Code Online (Sandbox Code Playgroud)

macos vpn nat portforwarding ios

5
推荐指数
0
解决办法
682
查看次数

为什么AWS NAT网关需要ElasticIP?

创建NAT网关时,会在AWS中创建一个弹性IP地址。AWS文档(1)也提到了相同的内容。为什么NA​​T网关需要弹性IP地址?

创建NAT网关

ip nat amazon-web-services

5
推荐指数
3
解决办法
1874
查看次数