公网访问局域网内的数据库

1,外网的服务器(比如Java web)如何连接局域网内的数据库呢?

2,公网的电脑如何访问局域网内的某个服务呢?

情景:我们之前做的一个项目,是要做一个网站,并且网站要能访问到客户公司局域网内的SQL Server数据库.

公网的电脑访问局域网内的数据库???

当时可把我们难倒了.在无计可施的时候,我打电话咨询了前公司的技术大牛,给我介绍了端口映射和花生壳

首先我们要明确点:

(a)公网中的电脑是可以访问局域网的网关(外网ip)的;

(b)网关的外网ip是由运营商分配的,是不固定的(所以才要用到花生壳);

(c)外网是无法直接访问到局域网中的某台电脑的.

我们起初的解决方案如下:

客户公司必须通过TP-LINK 上网,因为TP-LINK 有端口映射的功能.

为什么要端口映射呢?比如SQL Server数据库的端口号是1433,所在电脑ip是192.168.1.125(示例),那么可以在TP-LINK中进行端口映射,效果就是只要访问公网ip的端口号为1433 时,TP-LINK 就会定位到ip是192.168.1.125(示例)的电脑,也就是TP-LINK通过这种机制,可以用端口定位到局域网中的指定电脑.

这样就达到了公网访问局域网中某台电脑的目的.如下图

但是客户公司使用的是电信光猫上网,而且电信光猫没有端口映射的功能,因此必须要连一个TP-LINK.连接TP-LINK之后,拓扑图如下:

这样的话,就由两层局域网了,但是端口映射只能穿透一层局域网

现在有两个难题:

1,多了一个TP-LINK,因为有两个路由器就有两层局域网了,端口映射只能穿透一层局域网;

2,网关的外网ip是随时都有可能变化的.公网访问时ip肯定是不能写死的.

难题1的解决方案:让光猫只充当Bridge,说得通俗一点,就是充当一根网线.那么需要破解光猫,如何破解光猫呢?

首先用电脑直接连接光猫,获取光猫的超级管理员,步骤如下:

注意:电脑一定要直连光猫

用光猫背后的useradmin 帐号和密码登录 192.168.1.1

然后下载http://192.168.1.1/backupsettings.conf

用记事本打开,找到telecomadmin+8位数,这个就是你光猫telecomadmin的密码。

首先把URL>http://devacs.edatahome.com:9090/ACS-server/ACS找到,改成URL>http://devacs.edatahome.com.disable:9090/ACS-server/ACS,使得无法连接远程管理服务器,然后找到

< TotalTerminalNumber >5< /TotalTerminalNumber >,把5改成一个比较大的数字用以解除光猫接入设备数量限制。

然后用telecomadmin帐号和你刚才找到的密码登录192.168.1.1

打开 http://192.168.1.1/updatesettings.html 页面,把刚刚改好的配置恢复。

进入宽带设置界面,把internet连接从pppoe改成桥接(Bridge),类似于下面这个界面

设置好了之后,让路由器连接光猫,然后把主机B(SQL Server所在的电脑)连接数路由器,登录192.168.1.1,先设置上网参数(密码),然后来设置端口映射.

注意:此时,电脑直连光猫将不能上网,必须连接TPLink路由器,因为此时光猫仅仅起到Bridge作用.

问题:为什么要连接局域网里的主机B,连公网的数据库不行吗?

不行,因为客户之前购买了一个客户端软件,这个客户端软件安装了数据库,而我们做的网站要获取该数据库中的数据,所以只能连接主机B的数据库

端口映射

因为SQL Server数据库的端口号是1433,所以我们需要映射1433 端口号.

步骤如下:

登录TP-LINK控制台,

增加之后

即访问网关的1433端口号时 相当于直接访问局域网电脑192.168.1.125

难题2的解决方法:

使用花生壳

使用端口映射技术后,公网的ip是随时都可能变化的,此时需要使用花生壳软件绑定一个域名。

花生壳下载地址:http://pan.baidu.com/s/1pJFgLDL

或者:http://oray.net/PeanutHull/Download.asp

注册页面:https://console.oray.com/passport/register.html

注册成功:

花生壳的客户端:

打开cmd ,直接ping 花生壳域名:

查看域名解析信息,双击域名:

在主机B(SQL Server所在的电脑)上启动花生壳客户端,就把花生壳域名绑定到了这台电脑上,只要网关的外网ip发生变化,花生壳客户端会立即监测到并更新绑定.

所以公网的电脑只要访问花生壳域名就可以访问主机B(SQL Server所在的电脑)

注意:

(a)花生壳客户端一定要安装在要被外网访问的那台局域网电脑上;

(b)电信光猫一定要破解,因为普通的用户登录之后是看不到宽带设置功能界面的.

(c)破解光猫时,电脑一定要直连光猫,不能通过TP-LINK间接连光猫;

(d)一定要把光猫的连接类型改为”Bridge

说明:主机B 是局域网内的一台电脑

最终的拓扑图:

参考:电信光猫破解

时间: 2024-10-10 07:23:28

公网访问局域网内的数据库的相关文章

花生壳端口映射——花生壳+visiualSVN实现外网访问局域网内的SVN(一)

最近一段时间,在做一个系统的后期维护.这是一个不大不小的系统,我们采取的方法是,在我们局域网内的服务器上,有一个和用户服务器一摸一样的数据库,程序也是一摸一样的.这样修改之后,我们在把修改后生成的系统,拷贝到用户服务器上,重新发布.有点不太方便,也不能实现用户服务器和我们服务器修改的同步. 出现这个问题之后,经提醒,我决定研究一下把局域网的SVN服务器部署到外网上,这样,在用户端可以直接load我们SVN上的代码,直接发布.需求出来了,具体要怎么做呢? 方法有很多,最简单的,就是你有一个外网服务

实现外网访问局域网内的SVN——花生壳+visiualSVN实现外网访问局域网内的SVN(三)

经过前两篇文章,到目前为止,我们已经获取了外网域名并且搭建好了SVN server,接下来,我们就总结一下如何实践实现一下访问局域网. 1.安装VisiualSVN Server(可见:http://blog.csdn.net/lu930124/article/details/47128669 ) 2.安装花生壳和申请域名(可见:http://blog.csdn.net/lu930124/article/details/46998681) 3.设置路由器(以TP-LINK路由器为例,其他路由器类

[服务器 外网访问局域网内主机的服务器]

假如我的电脑在家里或公司连了路由器,然后开了服务器,希望外网能通过外网的IP访问到: 在路由器的界面找到“转发规则”里的“虚拟服务器”,进行条目的添加. 设定好自己的主机在局域网内的IP和相应端口号就可以了.

从外网访问局域网内的主机的方法(端口映射)

首先要做的事情如下: 1.确认你内网的路由器是否支持端口映射功能      2.如果你的路由器支持端口映射功能,在你本机安装远程控制软件      3.远程控制软件安装后,设置路由器,输入远程控制软件的端口和你本机ip,做端口映射      4.在你本机安装花生壳之类的动态域名软件      5.测试成功后,你在外网打开远程软件控制端,输入动态域名就可以访问你自己电脑了 端口映射(Port Mapping):      如果你是ADSL.MODEM或光纤等宽带接入用户,想在公司或单位内部建一个服

访问局域网内指定电脑,下载文件,读取数据

曾经遇到过需要下载服务器内文件到客户机上的情况(ps:服务器机器也是普通的pc),特意查了N多资料,发帖问了很多前辈 WebClient wc = new WebClient();public void Download(string Add, string savePath){  try{ wc.downloadFile(Add,savePath)}  catch{...}  finallly {wc.dispose();} } 实际用处并不大,因为它有个致命的缺点,就是访问别的电脑的时候,需

win8安装 VisualSVN Server 服务失败解决办法——花生壳+visiualSVN实现外网访问局域网内的SVN(二)

接前一篇内网实现SVN外网发布,若想把SVN发布到外网上,必须在本机或者服务器上装上VisualSVN Server .在实践的过程中,我的SVN安装一直报错.报错如下 对于这个错误,我查了一些资料,大家都非常赞同的解决方法是(详情可见http://jingyan.baidu.com/article/4dc40848a0dcdcc8d946f1cd.html): 1.在计算机上右键,选择管理,进入界面后,点中服务项,可以看到一个"VisualSVN Server"项,状态还没有启动(因

借助teamviewer,通过端口转发 访问局域网内指定主机

设置 netsh interface portproxy add   v4tov4  listenaddress=7.53.156.95   listenport=2222 connectaddress=192.168.0.108    connectport=2222 取消 netsh interface  portproxy delete v4tov4   listenaddress=7.53.156.95    listenport=2222 查看 netsh interface    p

公网访问内网数据库--Haproxy配置

Haproxy配置外网访问内网mysql 本台机器的外网ip:106.23.22.1 内网数据库ip:10.10.10.1 1.安装haproxy yum -y install haproxy vim /etc/haproxy/haproxy.cfg 2.需要在haproxy配置文件后端配置中(haproxy.cfg)添加以下配置即可 ########backend后端配置############## listen mysql bind 0.0.0.0:3307 #此处指定的允许哪个ip以及使用

VM搭建LAMP和局域网内访问之 转

(2012-11-06 14:29:17) 转载▼ 标签: it 分类: WEB 1.apache:[[email protected] liuhan]# yum install httpd... 启动[[email protected] liuhan]# /etc/init.d/httpd startStarting httpd: 查看运行状态[[email protected] liuhan]# /etc/init.d/httpd statushttpd (pid  2633) is run