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

本文介绍了一种使公网能够访问局域网内SQL Server数据库的方法,包括端口映射和使用花生壳软件绑定域名的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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 
打开 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控制台, 
虚拟服务器
增加端口
增加之后 
通过端口映射到局域网ip

即访问网关的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 花生壳域名: 
ping 注册的域名

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

在主机B(SQL Server所在的电脑)上启动花生壳客户端,就把花生壳域名绑定到了这台电脑上,只要网关的外网ip发生变化,花生壳客户端会立即监测到并更新绑定. 
所以公网的电脑只要访问花生壳域名就可以访问主机B(SQL Server所在的电脑) 
公网电脑的jdbc配置 
注意: 
(a)花生壳客户端一定要安装在要被外网访问的那台局域网电脑上; 
(b)电信光猫一定要破解,因为普通的用户登录之后是看不到宽带设置功能界面的. 
(c)破解光猫时,电脑一定要直连光猫,不能通过TP-LINK间接连光猫; 
(d)一定要把光猫的连接类型改为”Bridge

说明:主机B 是客户公司局域网内的一台电脑 
最终的拓扑图: 
最终拓扑图 
参考:电信光猫破解

### 如何通过 Docker 端口映射实现公网访问 #### 一、Docker 端口映射基础 Docker 容器可以通过 `-p` 参数将容器内的服务端口映射到宿主机上,从而让外部网络能够访问容器中的应用。例如,在启动 Portainer 的时候使用命令 `docker run -d -p 8088:9000 ...` 将容器的 9000 端口映射到了宿主机的 8088 端口[^1]。 #### 二、公网访问的前提条件 为了使容器的服务可以被公网访问,除了完成本地端口映射外,还需要满足以下几个前提条件: - **路由器配置**:如果服务器位于 NAT 后面,则需要在路由器上设置端口转发规则,将外部请求的特定端口指向服务器的对应端口。 - **防火墙规则**:确保服务器上的防火墙允许来自外部的流量到达指定端口。例如,使用 `iptables` 添加规则以支持公网访问[^3]。 - **IP 地址绑定**:确认容器监听的是所有可用接口(即 `0.0.0.0`),而不是仅限于 localhost 或其他受限范围。 #### 三、具体操作流程 以下是实现 Docker 容器服务对外部公网开放的具体方法: ##### 1. 映射端口至宿主机 当创建或运行一个新的容器时,利用 `-p` 参数定义端口映射关系。例如,对于 MongoDB 数据库镜像,执行以下命令将其默认端口 27017 映射到宿主机的任意端口(如 27017): ```bash sudo docker run -d -p 27017:27017 mongo ``` 此命令会使得宿主机上的 27017 端口与容器内部的相同端口建立连接[^2]。 ##### 2. 路由器端口转发 假设您的服务器拥有固定的公共 IP 地址或者动态 DNS 解析名称,那么您需要登录到宽带调制解调器/无线路由设备界面,找到虚拟服务器或端口触发选项,添加一条新纪录把互联网上的目标端口号(比如上面提到的 27017)重定向给局域网内实际提供该服务机器的真实地址及其对应的私有端口。 ##### 3. 设置 Linux 防火墙规则 为了让远程客户端顺利抵达上述已设定完毕的路径之上,还需适当放宽本机的安全防护策略。假如采用的是标准 netfilter 架构下的工具集——iptables 来构建边界防御体系的话,可尝试输入下面这样的指令片段来新增例外项以便放行必要的 TCP 流量进入系统并最终送达目的进程那里去处理它: ```bash iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to-destination <YourServerPrivateIP>:8000 iptables -A FORWARD -p tcp -d <YourServerPrivateIP> --dport 8000 -j ACCEPT ``` ##### 4. 修改应用程序配置文件 (如有必要) 某些情况下可能还需要调整程序本身的参数才能真正意义上达成预期效果;就像前面所举的例子那样,在 Scrapyd 平台里头就得重新规划好 deployment URL 字段的内容形式才行[#ref_4_]。 --- ### 注意事项 尽管以上措施可以让更多的人轻松接触到部署在线上的资源,但也伴随着潜在风险增加的可能性因此建议采取额外手段加强保护力度譬如启用 HTTPS 加密传输机制以及实施严格的认证授权控制等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值