large_zhao 发表于 2012-10-22 19:42

一个UDP穿透NAT的问题

最近写了一个很小的程序来实现UDP穿透NAT,结果如下:

1. 两台分布在不同内网的机器,可以穿透。

2. 一台机器在内网,一台机器拥有外网地址,可以穿透。

现在的问题是,如果两台机器处在同一内网中,似乎就不能连接了,也不能收到消息了。这是为什么?坐等高手出现。

linux_c_py_php 发表于 2012-10-22 22:56

局域网内还需要穿透?

newtun 发表于 2012-10-23 08:40

与路由器型号有关。有些路由器不支持这种回路的映射。
根据STUN协议,可以通过服务器判断两个客户端是不是在同一个内网,如果是在同一个内网,则使用内网IP直接连接即可。

large_zhao 发表于 2012-10-23 10:50

回复 3# newtun 什么是在同一个内网里面?是不是外网ip一样就是在同一个内网里面?如果在同一个内网里面,但是内网中有路由器的话,那该怎么进行通信?


   

large_zhao 发表于 2012-10-23 10:52

回复 2# linux_c_py_php 不需要穿透,那该怎么进行通信啊?主要是还有一层路由器,两台主机位于不同的路由器下面。给点指导吧。


   

linux_c_py_php 发表于 2012-10-23 10:57

不同的路由器是不同的子网段, 有路由器连着肯定能走起来, 为啥过不去呢, 求解释.

large_zhao 发表于 2012-10-23 10:52 static/image/common/back.gif
回复 2# linux_c_py_php 不需要穿透,那该怎么进行通信啊?主要是还有一层路由器,两台主机位于不同的路由器 ...

large_zhao 发表于 2012-10-23 11:06

回复 6# linux_c_py_php 我也不懂,刚做了个实验,从路由器下面的主机向上一层的主机发送消息能收到,但是从反过去就收不到数据,郁闷中,求你给指点下。


   

linux_c_py_php 发表于 2012-10-23 11:09

你看一下上层主机的默认网关是否配置为路由器IP.

large_zhao 发表于 2012-10-23 11:06 static/image/common/back.gif
回复 6# linux_c_py_php 我也不懂,刚做了个实验,从路由器下面的主机向上一层的主机发送消息能收到,但是从 ...

large_zhao 发表于 2012-10-23 11:19

回复 8# linux_c_py_php 表示不懂,网关的配置最后一个是1,其他的都是和ip的前三个一样,请问你做过p2p的项目吗?


   

linux_c_py_php 发表于 2012-10-23 17:42

做过BT协议.
页: [1] 2
查看完整版本: 一个UDP穿透NAT的问题