发布网友 发布时间:2022-04-07 21:53
共2个回答
懂视网 时间:2022-04-08 02:15
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 是局域网内的一台电脑
最终的拓扑图:
参考:电信光猫破解
公网访问局域网内的数据库
标签:网络拓扑 端口映射
热心网友 时间:2022-04-07 23:23
1.你得先保证两机能拼通.然后服务器需要打开1433口,并启动远程服务. 2. SQL code 远程连接sql server 2000服务器的解决方案 一看ping 服务器IP能否ping通。 这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。 二在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。 如果这一步有问题,应该检查以下选项。 1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。 2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开 开始菜单-> 程序-> Microsoft SQL Server-> 服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。 3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。 事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。 4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。 5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入 netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。 如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析器连接了。 三 检查客户端设置 程序-> Microsoft SQL Server -> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客户端tcp/ip协议启用,并且默认端口为1433(或其他端口,与服务器端保持一致就行)。 四 在企业管理器里或查询那分析器连接测试 企业管理器-> 右键SQlserver组-> 新建sqlserver注册-> 下一步-> 写入远程IP-> 下一步-> 选Sqlserver登陆-> 下一步-> 写入登陆名与密码(sa,password)-> 下一步-> 下一步-> 完成 查询分析器-> 文件-> 连接-> 写入远程IP-> 写入登录名和密码(sa,password)-> 确定 通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒。 修改默认连接超时的方法: 企业管理器-> 工具-> 选项-> 在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡-> 连接设置-> 在 登录超时(秒) 后面的框里输入一个较大的数字 查询分析器-> 工具-> 选项-> 连接-> 在 登录超时(秒) 后面的框里输入一个较大的数字 通常就可以连通了,如果提示错误,则进入下一步。 五 错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示: 1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。 2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。 3 在"身份验证"下,选择"SQL Server和 Windows "。 4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start mssqlserver启动服务,也是一种快捷的方法)。