DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: liy187
今日帖子: 0
在线用户: 3
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2016/11/17 10:43:08
标题:
高手们,有没有办法现有的二层架构微调就实现三层能做的基本功能 浏览:2150
加入我的收藏
楼主: 问个问题,我开发的两层系统有点大,转成三层比较麻烦,我有个这样的情况,大家看能不能提点建议。
数据库是SQL2000、开发环境Berlin10.1、数据库组件用的是ADO、用的是经典CS模式连接。
因为客户那边的话,很多客户端是不给上互联网的,,同时连接到一台局域网内的服务器,目前我是把数据库放在服务器上。
我现在想把数据库放在云系统中,当然每台客户端通过互联网直连是可以访问的,我现在就是想解决大部分客户端不能上互联网、但可同时连接到一台服务器上、那台服务器又可以上互联网的情况下,实现都可以访问云端数据库的功能。
各位给一些建议或提示,有没有这样的捷径:不过多的修改程序、不用三层技术开发(或者搞搞就能用)、不用VPN,所有的机器通过某一台能上网的机器(就算是服务器)有点什么技术就可以连上云系统中的SQL Server,就把这个活给干了。
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2016/11/17 10:59:15
1楼: 高手们支支招,多谢了。
----------------------------------------------
-
作者:
男 lr46752881 (Anuo) ★☆☆☆☆ -
普通会员
2016/11/17 11:02:20
2楼: 你这叫打5层楼的地基盖50层楼高~~~

现在很多三层中间键都支持伪三层。把sql语句发送到中间层然后返回数据集。
----------------------------------------------
123
作者:
男 xaccc (xaccc) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 11:04:48
2楼: 当时用过GreaterWare,不知这个中间件还活着没。

你也可以看看 http://www.remoteado.cn/
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2016/11/17 11:09:10
3楼: 大家有没有具体点的介绍,主要是开始没有用三层的结构,现在要改成本太高了。
----------------------------------------------
-
作者:
男 drroc (mvcxe) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 11:25:04
4楼: 如果用的是mysql就简单了,老多myql的proxy了
----------------------------------------------
MVCXE中国首个DELPHI MVC WEB框架:https://www.mvcxe.com/
作者:
男 myid (林锋) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 12:53:09
5楼: 程序不变,企业更换一可以管理上网的路由器即可.由路由器设置内网某IP段,只能访问你的云服务器IP,其他一概不放行
你其实没有服务器端,服务器就是装一个SQL2000嘛!
----------------------------------------------
-
作者:
男 138soft (138soft) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 14:05:35
6楼: 好像很弱智的问题。。。

局域网客户端A<---->局域网能上网的电脑B<----->云服务器C

电脑B实现一个数据转发程序即可。

1、最最简单的办法,如果连接数不多,或者不在乎效率,直接丢个Indy的TCPMapped控件,一行代码都不用写。

2、高级一点的方法:A客户端代码加入一个例如socket5客户端功能(网上代码大把),B安装个比如说CCPROXY。

3、最高效的方法:上WinPCAP。
----------------------------------------------
是你上错了车,还是我下错了站?
作者:
男 ghs_79 (ghs) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 14:40:20
6楼: 不改程序,通过硬件实现端口转发也是可以解决的。
1、指定一台路由器,可以同时联内网(内网IP)和外网(外网IP),配置好路由转发规则。
2、所有程序都联内网IP,这样通过路由器把请求转到外网。
----------------------------------------------
Delphi爱好者。
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2016/11/17 15:37:22
7楼: 138soft说的看上去有些比较靠谱,我先研究下,WinPCAP是个什么东东
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2016/11/17 15:54:44
8楼: TO:138soft
看了一些WinPCAP的资料,能否大概描述一下要如何实现呢,是装一个安装包就完了,还是做一些开发,无从下手,还请给点建议哦
----------------------------------------------
-
作者:
男 ltxubo (波仔) ★☆☆☆☆ -
普通会员
2016/11/17 16:46:31
9楼: 把服务器搞成多用户登陆就可以了
----------------------------------------------
-
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 16:57:26
10楼: 不能上互联网

路由专门开放sql server服务器是可以的

也可以用局域网中的服务器转发一下,装一个代理就行
----------------------------------------------
-
作者:
男 hnxxcxg (咏南中间件) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 17:19:45
11楼: 如果原来2层的客户端使用CLIENTDATASET,操作数据用了统一接口,那么改3层真是分分钟的事情。否则~ 你晓得的啦!
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
作者:
男 chenmfly (flym) ★☆☆☆☆ -
普通会员
2016/11/17 22:48:30
12楼: VPN行不。。。。。
----------------------------------------------
-
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/17 23:41:29
13楼: 楼上很多人都乱说!

楼主只要能访问sql server就行了,客户虽然不让上互联网,可是这种限制从需求上并不包括数据库服务器,所以只要简单地让客户端仅能访问某个IP(sql server服务器的IP)就行了,这个和限制访问互联网不矛盾,当然从安全角度看还是VPN更好一些。所以根本和软件修改无关!
一个是通过路由设置一下就行了,不然搞一个代理服务器(安装在局域网内的服务器上也是一样的),反正都可以实现。从网管的角度还是路由设置一下的好
----------------------------------------------
-
作者:
男 chro (chro) ★☆☆☆☆ -
普通会员
2016/11/18 1:31:56
14楼: 极其简单

打开那台服务器的防火墙配置,设一个端口转发,把内网网卡的1433端口映射到云端服务器的1433端口即可。XP都能实现这功能。

根据多年的经验,切不可请网管改路由,否则网络有P大点事都会怪罪到你头上
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2016/11/18 9:04:25
15楼: 貌似没考虑SQL Server在云端的安全问题?不怕攻击?
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/18 10:07:56
16楼:
貌似没考虑SQL Server在云端的安全问题?不怕攻击?


15楼说得很好!
楼主方案确实有问题。
数据库服务器直接放在互联网是不合适的,非要放的话,通常是两个方法:
1、改端口号
2、只开放本机访问或局域网访问(这个局域网是指托管两台或多台机器,其中一台只作数据库服务器)
----------------------------------------------
-
作者:
男 chro (chro) ★☆☆☆☆ -
普通会员
2016/11/18 10:36:32
17楼: 安全问题也简单
1、如果你服务器IP固定或者变化范围很小,,在sqlserver那边防火墙设个ip白名单,只允许你的服务器连接sqlserver就行了
2、如果IP变化大(如拨号方式上网),用不了白名单,稍微麻烦一点儿,需要你在服务器和sqlserver机器上都装一个stunnel(或者类似的东西),搞一个加密隧道,公网上达到VPN的安全效果,又比配VPN简单太多
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2016/11/18 16:08:44
18楼: To chro
端口转发这个听起来最简单,是否设置了转发,客户端的SQL连接字符串中服务器IP使用这台局域网的服务器就行啦?其它的诸如SQL的用户、密码、数据库名称就使用云端数据库的就行啦?
----------------------------------------------
-
作者:
男 chro (chro) ★☆☆☆☆ -
普通会员
2016/11/18 16:29:52
19楼: 楼上,是的,就这么简单。

实际上这种情况我们通常是这么做:
1、云端用云数据库(server_db),有云厂商维护,自己省事,没有公网ip,只能由LAN访问
2、云端开一台云主机(server_cloud),linux的,和云数据库在同一LAN
3、你的服务器(server_local),linux/windows都行,可以上internet访问云主机,用来当跳板
4、然后客户端填db地址时用 server_local 的内网地址

注意,高潮来了,在server_local上运行一条命令,你的系统就转起来了:

plink user@server_cloud -L 1433:server_db:1433 -C

而且公网传输使用ssh加密,安全无忧;server_db 也不暴露在公网,继续安全无忧。

注:plink适用于windows,要用linux命令有所不同
----------------------------------------------
-
作者:
男 138soft (138soft) ★☆☆☆☆ -
盒子活跃会员
2016/11/18 17:22:44
20楼: TO  kcm:
如果考虑到安全性,又不想上VPN,你要写两个程序,下面是比较简单的方法:

1、客户端如果连接协议是自己写的,加入代理协议。如果不是,甚至EXE都不是,上HOOK,在connect的时候改变IP,加入代理协议。

   这一步是连接到局域网能上公网那台电脑上的代理服务器。如果不考虑数据在公网传输的安全性,那么可以安装个第三方代理服务器比如说我朋友的CCProxy。问题解决。


2、如果考虑到安全性,第三方代理服务器改用Tunnel,例如我以前写的SSLProxy,或者自己写一个。
软件概述


  SSLProxy是一款基于SSL加密的代理软件,由客户端和服务端两部分组成。其中客户端运行于本机,服务端运行于安全的远程计算机。它可以使原来没有SSL加密的通信数据通过SSL进行传输,甚至可以配合代理王、e-border等软件组成“加密VPN”。

  软件特点:

  1:客户端对外提供标准的socks5代理和http代理接口,满足大部分软件的需求。

  2:服务端自带根证书和通信证书制作工具,无需安装第三方CA中心软件。

  3:支持SSLv2、SSLv3、TLSv1和TLSv1.1标准算法。

  4:客户端/服务端仅单一EXE文件,无需第三方DLL支持(例如:一般的OpenSSL,需要带libeay32.dll、libssl32.dll和ssleay32.dll等多个dll,如果黑客HOOK了sslwrite、sslread等函数,则加密形同虚设)。

  5:客户端每个连接均验证证书的合法性,如果证书不被信任或无效,则会自动提示并中断该连接,避免了“中间人”欺骗。

  软件原理:

  使用SSLProxy之前: Iexplorer、Foxmail、MSN......<----------(明文)---------->目标服务器

  使用SSLproxy之后: Iexplorer、Foxmail、MSN......<--->SSLProxyClient(运行于本机)<---(SSL算法加密)--->SSLProxyServer---(SSL算法解密)--->目标服务器

  实际应用:

  1:用户A位于广州某公司内部局域网,在使用SSLProxy之前,公司在内部或路由出口处安装了例如“网路岗”等嗅探软件,该用户查看邮件、MSN聊天等都会被拦截下来,毫无个人隐私可言。下载SSLProxy后,他在自己电脑运行SSLProxyClient,在自己家里电脑运行SSLProxyServer,然后他把本机的IE和MSN的代理设置为127.0.0.1(本机IP地址)。从此以后,他无论是通过IE查看邮件,还是通过MSN聊天,这些数据会被加密后传输到他家里电脑的SSLProxyServer,由其解密后再发送到目标服务器。路由出口处的嗅探软件再也无法窥探他的个人隐私了。

  2:在某安全单位上班的用户B,由于工作原因经常需要出差。在异地入住宾馆后,用自带的手提电脑通过宾馆提供的局域网线上网收发机要文件,还通过即时聊天工具和总部联系。这时候,一别有用心的用户住进了同一宾馆,然后用ARP欺骗工具对用户B的房间IP进行了数据拦截,导致用户B和该单位大量机密数据外泄。用户下载SSLProxy后,在单位的外网服务器安装了SSLProxyServer,然后每次出差时在自己的笔记本电脑运行SSLProxyClient,对方运行ARP欺骗程序后,只能得到一大堆无法解密的密文,再也无法嗅探到用户B收发的真正数据了。

此帖子包含附件:
GIF 图像
大小:26.1K
----------------------------------------------
是你上错了车,还是我下错了站?
作者:
男 138soft (138soft) ★☆☆☆☆ -
盒子活跃会员
2016/11/18 17:24:42
21楼: 这是我以前自己写来用的:
此帖子包含附件:
GIF 图像
大小:24.2K
----------------------------------------------
是你上错了车,还是我下错了站?
作者:
男 xxhadsg (garfield) ★☆☆☆☆ -
盒子活跃会员
2016/11/18 21:29:54
22楼: 路过,学习一下!
----------------------------------------------
这个世界上还有很多比钱更重要的东西,比如说意大利面---加菲猫
作者:
男 lps (lps) ★☆☆☆☆ -
盒子活跃会员
2016/11/18 22:48:34
23楼: 学习了
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2016/11/21 0:51:36
24楼: 多谢了,
chro的方法比较简单,优先试试。
138soft方法比较高深,作为备选。
多谢大家啦
----------------------------------------------
-
作者:
男 chinaman_a (大侠) ★☆☆☆☆ -
盒子活跃会员
2016/11/21 10:34:59
25楼: rtc有个路由功能,可能试试
----------------------------------------------
-
作者:
男 runsheng (srs) ★☆☆☆☆ -
普通会员
2016/11/21 21:25:29
26楼: http://download.csdn.net/detail/runsheng678/4812549?locationNum=2&fps=1
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行130.8594毫秒 RSS