免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
打印 上一主题 下一主题

[技术动态] 外网服务器向内网发送udp数据的问题 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
11 [报告]
发表于 2014-05-08 23:03 |只看该作者
谢楼上两位,仍旧没有找到答案。

hellioncu提到某NAT服务器不支持UDP,得想想怎么验证。

论坛徽章:
6
酉鸡
日期:2013-11-04 15:30:02巳蛇
日期:2014-01-23 10:36:23双鱼座
日期:2014-01-23 13:08:332015亚冠之鹿岛鹿角
日期:2015-09-03 14:36:002015亚冠之武里南联
日期:2015-09-18 10:48:1315-16赛季CBA联赛之山西
日期:2016-05-05 00:05:33
12 [报告]
发表于 2014-05-09 11:12 |只看该作者
楼主请参考维基
https://zh.wikipedia.org/wiki/%E ... 0%E8%BD%AC%E6%8D%A2

里面有提到NAT的类型

PS:记得P2P可以穿透特定类型的NAT,但是好像是直接通信的,不太清楚了

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
13 [报告]
发表于 2014-05-09 15:01 |只看该作者
回复 12# Dannysd


    p2p的NAT穿透只能通过UDP协议来……原理是让用户A和B先和服务器UDP通信,服务器记下它们NAT后的地址;然后A和B从服务器取得对方地址,之后各自向对方NAT后的地址发包。


这种情况下,NAT支持可分为几个大类(模糊记忆,不是很可靠)。

一种是记录通信双方的地址,不允许意外的链接的(即服务器发包给内网服务器A NAT后的地址,防火墙允许转发给A;而B发包给A NAT后的地址,防火墙会认为是非法链路而直接丢弃)。大部分企业级产品是这种模式。
这种NAT是无法穿透的。

第二种是只记录发送方的原始地址与NAT后的地址的映射关系;这样外部发给NAT映射后地址的包,无论来自哪里,都会被转发给原始地址。
这种NAT是可以穿透的。

最后,linux的iptables比较奇葩。它像第二种一样允许转发外部任意地址过来的包到内网原始主机;但,当内网对外发包时,它又同时检查通信双方的地址,为每条链路建立单独的映射(记得是这样,可能具体原理不太对。不过iptables比较奇特这点是没错的)。
这种NAT也是无法穿透的。





另外,NAT按使用方式可分两种。
一种是内网访问外网服务器时自动建立的,这样才可能支持局域网内的机器访问互联网(但反向访问是不被允许的,除非用NAT穿透黑掉它:注意是访问,不是通讯);另一种是想用位于内网的服务器对外提供服务时,必须事先到路由器上手动配置的,这种是可以自由双向访问的。


前面提到的NAT穿透,就是针对第一种NAT来说的。第二种用不着穿透。



至于有人提到的、不支持对UDP协议做NAT的服务器,我还没见到过。

论坛徽章:
6
酉鸡
日期:2013-11-04 15:30:02巳蛇
日期:2014-01-23 10:36:23双鱼座
日期:2014-01-23 13:08:332015亚冠之鹿岛鹿角
日期:2015-09-03 14:36:002015亚冠之武里南联
日期:2015-09-18 10:48:1315-16赛季CBA联赛之山西
日期:2016-05-05 00:05:33
14 [报告]
发表于 2014-05-09 15:59 |只看该作者
回复 13# shan_ghost


    多谢shan_ghost大神,受教了 谢谢  

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
15 [报告]
发表于 2014-05-09 17:12 |只看该作者
shan_ghost 发表于 2014-05-09 15:01
另外,NAT按使用方式可分两种。
一种是内网访问外网服务器时自动建立的,这样才可能支持局域网内的机器访问互联网


楼主的程序,就是这个简单的测试。

先内网机器访问外网机器,路由器自动建立NAT映射,
然后外网机器发回数据到内网。
这是最简单的NAT映射,完全不涉及复杂的P2P穿透。

不明白为什么会测试失败。

论坛徽章:
0
16 [报告]
发表于 2014-05-09 17:26 |只看该作者
回复 15# 群雄逐鹿中原


    对啊,就是简单的NAT规则。跟路由器NAT类型无关,又不是做p2p。这个按理应该是肯定支持啊。最近刚好弄过一个网络方面的程序,内网客户端,公网用的阿里云,udp通信,没有任何问题。估计还是网络环境的事。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2014-05-09 21:14 |只看该作者
回复 16# vime000

借个服务器给我玩几天,哈哈。。

其实我大概排除服务器的问题了,测试过服务器发出的包,其他服务器能收到。
问题应该还是在我自己网络的NAT和局域网内部。
   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
18 [报告]
发表于 2014-05-09 23:16 |只看该作者
无语。我怀疑我们家里装的宽带,udp监听端口,是否被电信运行商彻底禁止了。

在连到电信的路由器上,设定NAT端口33333到局域网里某台机器。
局域网里的机器当服务器。

这样外网可以通过tcp发送信息到局域网里的机器。
但是发udp却不能成功。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP