我爱电脑技术论坛's Archiver

絕罘放棄 发表于 2008-6-11 21:20

内网计算机被动连接技术

这几天为内网机器上线烦恼,苦想之下得到一个解决方案.%G {\4a!m

&d5tT.g-C/v-z4jc:E 网络结构图|] g8k^:x{\}

J*Y;d!i;i4x"V      1.1.1.1  (自己IP)X-g Xf6`Q~G
        !
yK i T+Xb        !
YtDTPHhh5P       2.2.2.2 (nat)  nat映射表
4W? Cl|L ?4pw ------------------------------- 局域网  vSi)Y,m
!                             !
!nfk z%zcD!z6TQ&m/s !                             !
Y GKIv C"F,k#u 192.168.1.2                  192.168.1.3
]1A,Y _EAH!s3r/n,i7z LK0bpXI:^
第一步K8{*^ SM _l&l
192.168.1.3向一个公网IP,3.3.3.3(不存在),发起源端口为4000,目的端口为5000的UDP连接7F6Q_2I(OkX
会在nat映射表上形成一个表项6q6Qh9n!c'Lb!FZ&]
目的 3.3.3.3 4000,通过 6000(随机生成) 端口 连接到 内网 192.168.1.3,4000端口#O1e]2Bv.]5Z
.........................................M _/VH4eX
(r@g2pMyA
第二步
6Zh'^3oVe 1.1.1.1 伪造65535个UDP包分别为(包有效内容为自己真实公网IP 1.1.1.1)}W/q+G(IG@
源端口3.3.3.3   端口5000,目的 2.2.2.2   端口 1-65535个
:q!^ wV? C \{%T 猜测nat随机分配的6000端口,这样一定会有一个包通过nat传到192.168.1.3电脑上
\!l*Bfnc.i @g$m :T'D,| a+@g-E0Q:Q8H3{
第三步
Q[Y?!| qmy(w 192.168.1.3拿到 UDP包后,解出公网IP1.1.1.1,向服务器发起主动连接w4\IhD;~ QK8m
O[krD{nx9J
网络成功连接.t&e)m#pS wt7\

2n8Zu5?\)B Y0B 如果内网有多台机器如192.168.1.2需要上线,只需要猜测一次就可以了.HN,?:mR1`*x

V!W#T0D1u Q{ //////////////////////////////////
g XQ5yMo-^kmB#H 本方法还没有编程实现过,理论上是可行了,希望高手指正错误. BN lZ3U#\7c @[

XAzE b 如果两个电脑都在NAT后面,我想是不是可以反着用同样方法,在来猜测一次UDP端口,进行通讯,这个就留着大家讨论了.

页: [1]
   

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.