论坛首页 Java企业应用论坛

这种需求,大家看看有没有比较好的解决方案

浏览 15196 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-25   最后修改:2010-06-25
为什么不给A开放指定IP或者数字证书的Internet Client?
0 请登录后投票
   发表时间:2010-06-25  
mercyblitz 写道
为什么不给A开放指定IP或者数字证书的Internet Client?

A网络是客户的内部网络,客户不给开放,就这么简单,呵呵。

0 请登录后投票
   发表时间:2010-06-25  
hatedance 写道
看你的情况,A能连接B,那么你把B做server。A发起请求,和B建立长期的连接。然后AB就能通讯了。
说得通俗一点就是搞一个类似浩方的平台。A和C就是2个玩家,B是服务器。通过B来进行互联。

同意,不过貌似不能实时,B无法通知A。
0 请登录后投票
   发表时间:2010-06-25  
引用
网络A中的服务器A可以单向访问网络B中的服务器B,网络B不能以任何形式访问网络A

  单向是什么意思?至少支持tcp/ip连结吗?如果支持的话:
   再如果你"单向"的意思是A只能做客户端访问B,即A可以寻B的址,那问题就很容易解决,用端口转发:

     在B上写一个端口映射的程序(赖写直接到网上找portMap),这个程序启动后,A做为客户机会连结上B,
于B保持tcp/ip连结.
   当用户要访问A上的服务器,首先连结的是B的某个端口,B上的端口映射将在这个端口接到的数据转发给己建立连结的A,将从A上接收到的数据转发给与B建立连结的客户机就OK了.

        估计你的场景是:A是内网的一台机器,B是有公网IP的前置机.用户要通过B访问A,其实是把B当做一个防火墙用,
1 请登录后投票
   发表时间:2010-06-25  
huangyuanmu 写道

在我们的应用中,碰到了如图所示的一种网络结构。位于网络A中的服务器A可以单向访问网络B中的服务器B,网络B不能以任何形式访问网络A,网络A的服务器A上部署着一套Web监控管理系统,对网络A中的某些资源进行监控和管理,位于Internet网络上的客户机可以访问网络B中的服务器B。现在的问题是,我们想要在Internet的客户机上,访问网络A中部署在A服务器上的Web监控管理系统。通过分析,直接访问应该是不太可能实现的,有没有一种间接的方法呢?


    我们类似的做法是    A 上报数据给B,这时候B相当于Server,A是Client;B和远程服务器就不用说了.B是client...

    A与B之间通过协议交互...

    心跳,交互协议处理比较繁杂..我们都自己用Socket写(心跳用webservice)..

    B和A的交互虽然是单向的..但是其实也很简单吧..B写缓存..A自己来下载回去.然后根据协议组织好数据给B..

    我们当初出现这种问题是因为A时没有固定IP的..所以只能由A来自己连上B..

    当然这只是很粗浅的说..

   

0 请登录后投票
   发表时间:2010-06-25  
curacfyh 写道
hatedance 写道
看你的情况,A能连接B,那么你把B做server。A发起请求,和B建立长期的连接。然后AB就能通讯了。
说得通俗一点就是搞一个类似浩方的平台。A和C就是2个玩家,B是服务器。通过B来进行互联。

同意,不过貌似不能实时,B无法通知A。

可以实现"伪实时"吧..网络允许的话,一分钟来询问一次有没新的监控指令肯定是可以的..延迟一分钟得到监控结果不知道LZ可以接受否就是了..
0 请登录后投票
   发表时间:2010-06-25  
javafound 写道
引用
网络A中的服务器A可以单向访问网络B中的服务器B,网络B不能以任何形式访问网络A

  单向是什么意思?至少支持tcp/ip连结吗?如果支持的话:
   再如果你"单向"的意思是A只能做客户端访问B,即A可以寻B的址,那问题就很容易解决,用端口转发:

     在B上写一个端口映射的程序(赖写直接到网上找portMap),这个程序启动后,A做为客户机会连结上B,
于B保持tcp/ip连结.
   当用户要访问A上的服务器,首先连结的是B的某个端口,B上的端口映射将在这个端口接到的数据转发给己建立连结的A,将从A上接收到的数据转发给与B建立连结的客户机就OK了.

        估计你的场景是:A是内网的一台机器,B是有公网IP的前置机.用户要通过B访问A,其实是把B当做一个防火墙用,


单向就是A网络的A机能访问B网络中的B机,可以建立TCP连接,进行JDBC访问,其它访问方式不会开放。而B网络中的任何一台机器,都不能对A网进行任何的访问,也就是B网中的机器不能主动发起与A网中的机器建立TCP连接。

你的猜测基本上正确,我是简化了网络的结构,能说明问题就好了,呵呵。

因为网络设置具体是怎样的,我们也不很清楚,客户也不会告诉我们,只能猜猜。

根据你的方法试试看,谢谢!
0 请登录后投票
   发表时间:2010-06-25  
我们要求客户架设VPN
0 请登录后投票
   发表时间:2010-06-25   最后修改:2010-06-25
我也同样的需求,关注.楼主实现后能否将解决方案共享下?
0 请登录后投票
   发表时间:2010-06-25  
huangyuanmu 写道
mercyblitz 写道
为什么不给A开放指定IP或者数字证书的Internet Client?

A网络是客户的内部网络,客户不给开放,就这么简单,呵呵。




VPN就可以实现了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics