文章目录

  • 前言
  • 1. 安装SQL Server
  • 2. 局域网测试连接
  • 3. 安装cpolar内网穿透
  • 4. 将SQL Server映射到公网
  • 5. 公网远程连接
  • 6.固定连接公网地址
  • 7.使用固定公网地址连接


前言

简单几步实现在Linux centos环境下安装部署SQL Server数据库,并结合cpolar内网穿透工具,创建安全隧道将其映射到公网上,获取公网地址,实现在外异地远程连接家里/公司的数据库,而无需公网IP,无需设置路由器,亦无需云服务器。

1. 安装SQL Server

下载 SQL Server 2022 (16.x) Red Hat 存储库配置文件:

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo

运行以下命令以安装 SQL Server:

sudo yum install -y mssql-server

然后等待安装完成

sql server manager 远程连接 sqlserver如何远程连接_数据库

包安装完成后,使用其完整路径运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。

sudo /opt/mssql/bin/mssql-conf setup

前面三个版本是免费提供许可的:Evaluation、Developer 和 Express 版,我们选择第二个作为测试使用

sql server manager 远程连接 sqlserver如何远程连接_运维_02

然后同意一下许可条款,输入yes

sql server manager 远程连接 sqlserver如何远程连接_运维_03

选择中文语言

sql server manager 远程连接 sqlserver如何远程连接_sqlserver_04

然后设置管理员密码,把密码记住,不要忘了

sql server manager 远程连接 sqlserver如何远程连接_数据库_05

然后安装完成,会自动启动

sql server manager 远程连接 sqlserver如何远程连接_数据库_06

完成配置后,验证服务是否正在运行:

systemctl status mssql-server

sql server manager 远程连接 sqlserver如何远程连接_运维_07

默认的 SQL Server 端口为1433,TCP协议。 如果为防火墙使用的是FirewallD,则可以使用以下命令:

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent

设置完重启防火墙

sudo firewall-cmd --reload

此时,安装完成了。

注意:如果需要使用命令行连接,在安装SQL Server的时候就需要安装SQL Server命令行工具,可以参考官方教程:https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sql-server-ver16

2. 局域网测试连接

由于我没有安装命令行工具,所以我们使用图形化工具连接,这边使用navicat进行测试连接,输入局域网ip地址,输入用户名sa,密码上面设置的密码,点击测试连接出现连接成功

sql server manager 远程连接 sqlserver如何远程连接_运维_08

点击数据库,勾选默认的数据库,

sql server manager 远程连接 sqlserver如何远程连接_sqlserver_09

登陆后即可看到默认表信息

sql server manager 远程连接 sqlserver如何远程连接_linux_10

3. 安装cpolar内网穿透

上面步骤里,我们在本地Linux安装了SQL Server 数据库并且局域网测试ok。

接下来我们安装cpolar内网穿透工具,通过cpolar的tcp公网地址,我们可以很容易实现远程访问SQL Server,而无需自己注册域名购买云服务器。cpolar它支持http/https/tcp/tls/ftp协议,使用不限制流量,支持永久免费使用。

cpolar官网:https://www.cpolar.com/

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里:

cpolar authtoken xxxxxxx

sql server manager 远程连接 sqlserver如何远程连接_运维_11

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

4. 将SQL Server映射到公网

成功启动cpolar服务后,我们在浏览器上访问cpolar web UI管理界面:Linux局域网ip地址+9200端口,使用cpolar邮箱账号登录(如果你还没注册账号的话,在cpolar官网注册一个)

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个tcp协议的隧道指向SQL Server的1433端口:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:1433
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP

点击创建

sql server manager 远程连接 sqlserver如何远程连接_sqlserver_12

然后打开在线隧道列表,查看并且复制tcp协议的公网地址。【注意无需复制tcp://

sql server manager 远程连接 sqlserver如何远程连接_运维_13

5. 公网远程连接

打开navicat或者其他连接工具,输入上面我们使用cpolar内网穿透工具所获取的公网地址,以及SQL Server用户名密码,点击测试连接,出现连接成功表示成功。

需要注意:公网地址中的冒号(:)需改为逗号(,)

sql server manager 远程连接 sqlserver如何远程连接_Server_14

6.固定连接公网地址

由于以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址,同时提高带宽速度。

配置固定tcp端口地址需要将cpolar升级到专业版套餐或以上。

  • 保留一个固定tcp地址

登录cpolar官网后台,点击左侧的预留,找到保留的tcp地址,我们来为远程SQL Server保留一个固定的tcp地址:

  • 地区:选择China vip
  • 描述:即备注,可自定义

点击保留

sql server manager 远程连接 sqlserver如何远程连接_linux_15

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

sql server manager 远程连接 sqlserver如何远程连接_sqlserver_16

  • 配置固定tcp地址

在浏览器上登录cpolar web UI管理界面,Linux局域网ip地址+:9200端口

点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的远程SQL Server隧道,点击右侧的编辑

sql server manager 远程连接 sqlserver如何远程连接_数据库_17

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址

点击更新

sql server manager 远程连接 sqlserver如何远程连接_运维_18

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定tcp地址。

sql server manager 远程连接 sqlserver如何远程连接_Server_19

7.使用固定公网地址连接

打开navicat连接工具,输入官网保留的固定tcp地址,点击测试连接,提示连接成功。

需要注意,公网地址后面端口的冒号(:)需改为逗号(,)

sql server manager 远程连接 sqlserver如何远程连接_Server_20

现在这个公网地址不会再随机变化了,只要保持隧道正常在线,我们在外就可以通过这个固定公网地址来远程连接局域网的SQL Server数据库。