搜索
bottom↓
回复: 17

【求救】外网如何访问局域网其中一台设备?

[复制链接]

出0入0汤圆

发表于 2015-11-8 14:58:57 | 显示全部楼层 |阅读模式
【求救】外网如何访问局域网其中一台设备?

不要做端口映射?比如【手机QQ通过WIFI登录,获得192.168.1.100, 服务器是怎么发信息给局域网的这个手机QQ】


比如电信分配给我公网IP:  202.x.x.1 (公网)

通过路由器,有两台手机192.168.1.2 和 192.168.1.3

然后192.168.1.2:6666 开了UDP socket服务
同样192.168.1.3:6666 也开了UDP socket服务

问题1:想问别人怎么才能send信息给192.168.1.2的6666这个端口?
问题2:能不能用手机A : 192.168.1.2:6664 发送一个udp packge 到 服务器, 然后服务器获得手机A的通讯信息,返回一些数据给手机A?(其实也是在问题1 , 怎么和手机A 通信,他是内网的)





阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2015-11-8 15:18:54 | 显示全部楼层
本帖最后由 idle 于 2015-11-8 15:20 编辑

路由器上端口映射啊

出60入0汤圆

发表于 2015-11-8 15:23:12 | 显示全部楼层
不做端口映射,就需要长链接.TCP用过, UDP没有用过。同一个socket,连接到服务器后,继续监听这个socket,等待来的数据

出0入0汤圆

发表于 2015-11-8 15:55:08 | 显示全部楼层
通过公网服务器中转。

出0入0汤圆

发表于 2015-11-8 16:00:36 | 显示全部楼层
外网访问内网的端口,最好在路由上做端口映射,将该端口映射到内网某个ip的指定端口上。

如果不做端口映射其实也可以访问,但是需要内网的机子主动发起通讯。
我做过测试,内网向外网ip发送UDP通讯时,路由会开启一个随机端口作为临时端口映射,外网ip收到这条UDP数据包后,在短时间内可以通过该随机端口与内网进行通讯。
假设我们现在有内网机子A,IP是192.168.1.88开启了6666端口,这个内网所在的路由B,公网IP是123.123.123.123,公网上另一台服务器C的IP222.222.222.222,开启了7777端口。
若未做端口映射,服务器C直接向B发送UDP数据帧是无法送达A的。
但是若A通过自己的6666端口主动向C地址的7777端口发送一条UDP数据帧,路由B会开启一个随机端口,再通过该随机端口向C的7777端口发送该数据帧。而从服务器C看来,就等于路由B的随机端口向自己的7777端口发送了一条数据帧。
此后,该随机端口的有效期内,服务器C可以向路由B的该随机端口发送UDP数据,路由B就会将数据帧转发给A的6666端口。
端口的有效时间根据路由器设置的不同,大概在数十秒到数分钟左右吧。

出0入70汤圆

发表于 2015-11-8 16:21:16 | 显示全部楼层
不做映射的话,  那 局端内设备 主动 与 服端 建立连接..........这样就可以了

出0入0汤圆

发表于 2015-11-8 16:28:16 | 显示全部楼层
1.如果你的路由没有做端口映射,任何人没法先从路由器外发送信息给192.168.1.2的6666这个端口。
   原因:假如设备A:202.X.X.X要发送消息给你192.168.1.2:6666,路径是:202.X.X.X:xxxx------202.x.x.1:xxxx (公网)---------192.168.1.2:6666,如果你的路由202.x.x.1:xxxx (公网)没有做端口映射,路由就直接丢弃这个连接。所以不能发消息给内网。
  那么,怎么能没有做路由映射而连接上呢?就是你内网的机子先连外网的这个机子,这个仅限UDP,路径:192.168.1.2:6666------202.x.x.1:xxxx (公网)------202.X.X.X:xxxx,不管202.X.X.X:xxxx机子有没有收到这个UDP数据包都无所谓。这样你的路由里就有条连接记录,202.X.X.X:xxxx发消息给192.168.1.2:6666,路由认为是202.X.X.X:xxxx回复消息。这样就连接上了,这就是传说中的UDP穿透。
  那么如果是TCP呢,TCP是要握手的,如果设备A:202.X.X.X也是内网,那么必然连接不上,怎么办?那只能凉拌了。
2,这个问题也也就不用再回答了。

补充:TCP连接到底能不能穿透,理论是是可以的,实际是应该像某雷是已经做到了的,原理就是端口复用,在一个帖子里看到,我没有验证过。

出0入0汤圆

 楼主| 发表于 2015-11-8 17:02:35 | 显示全部楼层
dalarang 发表于 2015-11-8 16:00
外网访问内网的端口,最好在路由上做端口映射,将该端口映射到内网某个ip的指定端口上。

如果不做端口映射 ...

刚好也看了这个,和你说的一样NAT。 时间太长了,那个对应关系无效了怎么办,是不是要定时发一个UDP 到 服务器,来维持这种关系?

出0入4汤圆

发表于 2015-11-8 17:08:57 | 显示全部楼层
ICE/STUN 协议

出0入0汤圆

 楼主| 发表于 2015-11-8 17:17:14 | 显示全部楼层
define_avr 发表于 2015-11-8 16:28
1.如果你的路由没有做端口映射,任何人没法先从路由器外发送信息给192.168.1.2的6666这个端口。
   原因: ...

谢谢您的回复!是的,刚刚也看到了。

出0入0汤圆

 楼主| 发表于 2015-11-8 17:41:35 | 显示全部楼层

我再看看

出0入0汤圆

发表于 2015-11-8 17:51:36 | 显示全部楼层
公网搭一个服务器,自己写一个中转程序,或者用现成的STUN/TURN server

出0入0汤圆

发表于 2015-11-8 18:19:58 | 显示全部楼层
这个平台非常适合你,http://www.fuhome.net/bbs/forum.php

出0入0汤圆

发表于 2015-11-8 18:21:27 | 显示全部楼层
发UDP包给服务器,然后转发

出0入0汤圆

发表于 2015-11-8 18:21:54 | 显示全部楼层
llsenyue 发表于 2015-11-8 18:19
这个平台非常适合你,http://www.fuhome.net/bbs/forum.php

根据平台协议,就可以转发,非常方便

出0入0汤圆

发表于 2015-11-9 00:42:53 来自手机 | 显示全部楼层
花生壳有个硬件产品

出0入0汤圆

发表于 2015-11-9 00:55:10 来自手机 | 显示全部楼层
NAT穿透呀!!网络编程的基础知识了

出0入0汤圆

发表于 2015-11-9 02:50:03 | 显示全部楼层
现在流行公有云概念,不用自己搞域名解释。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 23:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表