外网远程访问SQL Server数据库【无公网IP】
在本地局域网内的SQL Server数据库,一般只能在局域网内访问,想要在外网/公网也可以远程访问到局域网的SQL Server数据库,可以通过两种方式来实现。
- 公网IP+端口映射
- 内网穿透
第一种,公网IP+端口映射
,前提是需要有真实的公网IP,但由于IPV4资源不足,无法为每个用户分配到独立的公网IP,也就是说绝大部分的用户被分配到的其实都是局域网IP。
而要做端口映射的前提是,需要用户有真实的公网IP,并进入到路由器进行映射。所以对于没有被分配到公网IP的用户,可以通过第二种内网穿透,来实现外网远程访问SQL Server数据库。
第二种,内网穿透
,其原理是通过第三方有公网IP的服务器进行数据转发,将本地端口映射到公网上,生成相应的公网地址来进行连接。
比如cpolar内网穿透,亲测好用,也支持免费套餐,使用简单,只需要在本地安装下载客户端,完成简单的配置后,就可以创建隧道将本地端口映射到公网。
cpolar 官网:https://www.cpolar.com/
1. 安装cpolar内网穿透
1.1 windows系统下载安装包后解压双击安装包一路默认安装即可
1.2 Linux系统支持一键自动安装脚本
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
或 cpolar短链接安装方式:(国外使用)
curl -sL https://git.io/cpolar | sudo bash
- 查看版本号,显示3.2.88.22
cpolar version
- token认证【登录cpolar后台——验证,可以查看到自己的token,将token贴在命令行】
cpolar authtoken xxxxxxx
- 向系统添加服务
sudo systemctl enable cpolar
- 启动cpolar服务
sudo systemctl start cpolar
- 查看服务状态,如正常显示为
active
则状态启动正常
sudo systemctl status cpolar
2. 创建隧道映射SQL Server数据库
访问本地9200端口【本地IP地址:9200,http://localhost:9200/】,登录cpolar web ui管理界面。点击左侧的隧道管理——创建隧道
- 隧道名称:可自定义,注意不要重复即可
- 协议:选择TCP协议
- 本地地址:1433
- 端口类型:免费选择随机
- 地区:选择China或者China vip
点击创建
隧道创建成功,点击左侧的状态——在线隧道列表,可以查看到所生成的随机公网地址,即可通过该地址实现公网远程连接。
需要注意的是,使用免费的cpolar所生成的公网地址为随机临时地址,24小时内会变化,且带宽较小。我们可以为其配置固定的公网TCP端口地址,并提高带宽。
3. 配置固定公网TCP端口地址
3.1 保留一个固定TCP端口地址
登录cpolar官网,进入后台,点击左侧仪表盘的预留。找到保留的TCP地址
,为远程sql保留固定的TCP地址:
- 地区:选择“China VIP”
- 描述:可自定义备注
点击保留
TCP地址保留成功后,会生成相应的地址,将其复制下来。
3.2 配置固定TCP端口地址
登录cpolar web ui管理界面【浏览器访问127.0.0.1:9200】,点击左侧仪表盘的隧道管理
——隧道列表
,找到SQL Server隧道,点击编辑
修改隧道信息
- 端口类型:改为选择
固定TCP端口
- 预留的TCP地址:填入刚刚为SQL Server预留的TCP地址
修改完成后,点击更新
4. 使用固定公网地址远程访问
在左侧仪表盘的状态
——在线隧道列表
,可以看到已经更新为固定的公网TCP端口地址。复制该公网地址进行远程连接即可。