3050311118 发表于 2014-6-2 18:16:57

今天做了实验推翻了我以前的观点,客户端主动发送到服务器,

本帖最后由 3050311118 于 2014-6-2 18:18 编辑

是这样的   我在阿里云租了一个虚拟主机服务器安装了一个TCPUDP调试工具,开启了一个服务,监听一个端口1001
然后我本地电脑去连它。连上了,这边就显示的116.226.18.188:5572是我本地电脑的外网IP和端口,然后我在服务器那端客户端想去连接我本地电脑试试
IP和端口跟 那个信息一样,并且我本地电脑也开启了监听,但是就是连不上

我以为本地电脑主动连它   获得IP服务器就可以主动来连接我本地电脑了呢? 所谓的穿透   具体是怎样的呢?
11111是我本地电脑222222是服务器电脑

shawn_bu 发表于 2014-6-2 18:34:43

估计是你的网络运营商路由做了手脚。或者你拿到的公网IP压根就是net出去的。建议你查查电脑的IP地址是多少,如果用了路由器看看路由器wlan的IP是多少。

LZDZ 发表于 2014-6-2 18:40:46

116.226.18.188是你的电脑IP么?这个地址好像是你们公司路由的地址吧,你的电脑在你们公司的地址是192.168.1.100吧,需要在你们公司做映射才行。

albert_w 发表于 2014-6-2 19:05:45

需要补习网络知识啊!别考虑在防火墙上为TCP打洞了, 这个很难.

不是这么玩儿的, 尤其TCP. 这个端口上, 防火墙是不允许新的连接进入的, 而且当前tcp连接断开后, 这个端口很快就关闭了.部分UDP可以这么做, 定时刷新防火墙会话即可.

自己的服务器要找客户端, 需要做的就是保持住这个连接. 办法是任何一端定期地发短报文刷新连接即可. 要通信就利用现有的这个连接发送数据即可. 别指望靠这个已经知的IP和端口号开一个新连接.

wxfje 发表于 2014-6-2 19:29:16

albert_w 发表于 2014-6-2 19:05
需要补习网络知识啊!别考虑在防火墙上为TCP打洞了, 这个很难.

不是这么玩儿的, 尤其TCP. 这个端口上, 防 ...

请问下有没有相关的书籍或资料推荐,最近正在学习TCP

zpwc 发表于 2014-6-2 20:15:24

百度 长连接

skylly3 发表于 2014-6-2 20:22:41

116.226.18.188应该是你的公网IP,但是并不代表你是直接联的广域网,可能你是通过路由器之类的上网。
5572那个端口是你通过路由器连出去时, 路由器随机分配的, 这个随机端口仅允许这个连接使用, 连接关闭后就失效了。
你要提供服务, 要在路由器上做端口映射,把路由器的5572端口映射到你本机的5572上来。

3050311118 发表于 2014-6-2 22:59:41

LZDZ 发表于 2014-6-2 18:40
116.226.18.188是你的电脑IP么?这个地址好像是你们公司路由的地址吧,你的电脑在你们公司的地址是192.168. ...

映射我知道   但是还有一种技术是打洞技术   可以不需要映射的

3050311118 发表于 2014-6-2 23:02:02

albert_w 发表于 2014-6-2 19:05
需要补习网络知识啊!别考虑在防火墙上为TCP打洞了, 这个很难.

不是这么玩儿的, 尤其TCP. 这个端口上, 防 ...

大师说的是    我这边了解到打洞技术是用UDP来搞的   我再研究下

3050311118 发表于 2014-6-2 23:03:32

skylly3 发表于 2014-6-2 20:22
116.226.18.188应该是你的公网IP,但是并不代表你是直接联的广域网,可能你是通过路由器之类的上网。
5 ...

嗯映射我知道    最近在研究打洞技术据说不用映射

albert_w 发表于 2014-6-2 23:04:34

3050311118 发表于 2014-6-2 22:59
映射我知道   但是还有一种技术是打洞技术   可以不需要映射的

既然客户端已经连上服务端, 何须再打洞呢?

难不成你要让服务器指导两个客户端互联? 还要走TCP ? 搞定了的话一定记得告诉我!

3050311118 发表于 2014-6-2 23:06:11

albert_w 发表于 2014-6-2 23:04
既然客户端已经连上服务端, 何须再打洞呢?

难不成你要让服务器指导两个客户端互联? 还要走TCP ? 搞定了 ...

是的 好的    我想让两个客户端连接发现网络基础知识还不够努力学习中

ddqq 发表于 2014-6-2 23:10:52

3050311118 发表于 2014-6-2 23:06
是的 好的    我想让两个客户端连接发现网络基础知识还不够努力学习中 ...

这个用途好,比如有两个客户端A,B分别和云服务器建立链接,那么如何实现A与B的点到点连接?

albert_w 发表于 2014-6-2 23:14:28

ddqq 发表于 2014-6-2 23:10
这个用途好,比如有两个客户端A,B分别和云服务器建立链接,那么如何实现A与B的点到点连接? ...

纯无端口映射的情况,一般是UDP来做的

ddqq 发表于 2014-6-2 23:32:56

现在的QQ等都可以用TCP来做了

tsb0574 发表于 2014-6-3 00:17:13

没看懂,跟不上了,

skylly3 发表于 2014-6-3 00:24:35

TCP打洞很多年以前我也做过,要做一个服务器程序(我管那个程序叫网桥), 架设在公网上。
当时是公司的技术部同事有需求才做的, 用来实现局域网之间的远程控制(类似team viewer的东西)。
我自己订了一套协议, 仿sock5,服务端和客户端都主动连接到网桥上, 通过网桥进行中转
(其实很简单, 每两个TCP连接就起个线程负责转发, 收到客户端包就直接丢给服务端, 收到服务端包就直接丢给客户端)。
虽然做了测试使用没问题, 但是据说效率有点问题, 没能应用起来。

ddqq 发表于 2014-6-3 00:29:50

skylly3 发表于 2014-6-3 00:24
TCP打洞很多年以前我也做过,要做一个服务器程序(我管那个程序叫网桥), 架设在公网上。
当时是公司的 ...

这个还是需要服务器中转,如果无须中转就好了

daiqx 发表于 2014-6-3 00:34:52

如果不想编程实现,最简单的中转就是VPN服务器。不用映射,A,B都拨入VPN服务器,然后AB可以任意互访。

gamep 发表于 2014-6-3 09:05:01

好像是nat会把外网的数据抛弃 ,除非外网IP是内网先请求的。否则即使同一个端口 也不会转发
我也是这半懂

gamep 发表于 2014-6-3 09:09:59

Q​Q​通​信​原​理​及​Q​Q​是​怎​么​穿​透​内​网​进​行​通​信​的​?
楼主可以看看百度文库中这篇文章

kunteng 发表于 2014-10-8 02:02:01

你这是UDP打洞前奏呀

jianplx 发表于 2014-10-8 13:15:10

很想了解这方面的知识

fchen2 发表于 2014-10-10 17:01:04

需要了解NAT, 本机地址经过NAT 变成外网地址。但外部看不到本机,需要做NAT 端口映射。 一般无线路由器都有设置

embeddev_1 发表于 2014-10-10 17:02:49

楼主阿里云租个服务器多少钱啊?具体怎么操作的!{:biggrin:}

3050311118 发表于 2014-10-10 22:22:56

embeddev_1 发表于 2014-10-10 17:02
楼主阿里云租个服务器多少钱啊?具体怎么操作的!

百度搜索下阿里云主机   有购买的页面的

john78 发表于 2014-10-10 23:48:47


如果116.226.18.188应该是你的公网IP,要在你的路由中做端口映射。

leiyin 发表于 2014-10-10 23:56:45

过了个路由,这个就能点到点了。

leiyin 发表于 2014-10-11 00:01:49

leiyin 发表于 2014-10-10 23:56
过了个路由,这个就能点到点了。

要主机连客户端,可以借助第三方软件吧把内网地址变成外网,比如有个内网建站的软件解析域名,可以实现最后给内网一个ip地址和端口。

wxws 发表于 2014-10-11 08:40:00

本地电脑 UDP应该要一直联着服务器,并 不定时发心跳,数据商量着办。

然后 服务器端,就能直接访问客户端了。

这些天在玩的fuhome.net 就是这样实现的。
页: [1]
查看完整版本: 今天做了实验推翻了我以前的观点,客户端主动发送到服务器,