天天看点

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

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

情景:

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

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

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

首先我们要明确3点: 

(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通过这种机制,可以用端口定位到局域网中的指定电脑. 

牺牲端口,模拟公网ip

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

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

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

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

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

现在有两个难题: 

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

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

难题1的解决方案:

让光猫只充当bridge,说得通俗一点,就是充当一根网线.那么需要破解光猫,如何破解光猫呢? 

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

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

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

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

下载backupsettings.conf的具体步骤:

(a)使用路由器背面的用户名密码登录;

(b)登录成功之后,在地址栏敲这个http://192.168.1.1/backupsettings.conf

(c)可能会又进入登录界面(之前已登录,怎么又要登录?不正常啊! 咱们破解也不正常啊),不用管,照样输入路由器背面的用户名密码,可能要反复3次

(d)登录成功之后,重复(b),直到下载成功.

用记事本打开,找到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 

进入宽带设置界面,把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是随时都可能变化的,此时需要使用花生壳软件绑定一个域名。 

注册成功: 

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

花生壳的客户端: 

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

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

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

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

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

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

所以公网的电脑只要访问花生壳域名就可以访问主机b(sql server所在的电脑) 

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

注意: 

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

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

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

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