文章目录

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

简单几步实现在Linux centos环境下安装部署sql server数据库,并结合cpolar内网穿透工具,创建安全隧道将其映射到公网上,获取公网地址,实现在外异地远程连接家里/公司的sqlserver数据库,而无需公网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

然后等待安装完成

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

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

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

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

选择中文语言

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

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

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

systemctl status mssql-server

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

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

设置完重启防火墙

sudo firewall-cmd --reload

此时,安装完成了。

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

2. 局域网测试连接

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

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

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

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

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

4. 将sqlserver映射到公网

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

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

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

点击创建

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

5. 公网远程连接

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

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

6.固定连接公网地址

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

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

  • 保留一个固定tcp地址

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

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

点击保留

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

  • 配置固定tcp地址

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

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

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

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

点击更新

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

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

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

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

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

「数据库」Linux服务安装部署SQL Server -外网安全远程连接【端口映射】相关推荐

  1. 安装完SQL Server后,解决本地服务器连接失败的方法(仅供参考)

    问题描述: 在个人PC上安装完SQL server后,可能会遇到服务器连接失败的问题,问题如下 在SQL Server Profiler中打开Microsoft SQL Server Manageme ...

  2. 配置 SQL Server 2005 以允许远程连接(服务器端)

    默认情况下,SQL Server 2005 Express Edition 和 SQL Server 2005 Developer Edition 不允许远程连接.若要配置 SQL Server 20 ...

  3. 为SQL Server Express 2012启用远程连接

    本文翻译自:Enable remote connections for SQL Server Express 2012 I just installed SQL Server Express 2012 ...

  4. 成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败

    成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败 ...

  5. 外网ssh远程连接linux服务【内网穿透】

    在没有公网IP的情况下,要实现外网ssh远程linux服务,普遍是做内网穿透,在本地安装个客户端就可以. 现在市面上内网穿透软件很多,不乏好坏.这里推荐一款挺好用的内网穿透软件--cpolar,不限制 ...

  6. 远程服务器是否启动了sql server 2000服务,SQL Server 2000服务器的远程连接

    获得知识的途径有很多,在课课家语言编程的学习更是有无限的乐趣,现在由小编为大家讲解有关语言编程的文章希望对大家有所帮助.远程连接SQL Server 2000服务器的解决方案: 需求如下:需要远程连接 ...

  7. 如何配置 SQL Server 2005 以允许远程连接

    在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息. Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的 ...

  8. 阿里云centOS7安装好Nginx设置外网可以访问80端口

    欢迎扫描底部关注:快乐学习与分享 1.将默认的firewall防火墙替换成iptables 关闭firewalld防火墙 systemctl stop firewalld 设置开机禁用 systemc ...

  9. 「JupyterNotebook」Linux下安装Anaconda3以及后续打开jupyter notebook

    从官网下载Anaconda3 Linux版安装包 打开Terminal开始安装 在Terminal中输入:bash 安装包路径/安装包名字 eg. bash /home/fun/Downloads/A ...

最新文章

  1. MySQL面试题 | 附答案解析(十)
  2. 8、Kubernetes核心技术Service
  3. web 前端绘制折线_前端每日实战:苦练 CSS 基本功——图解辅助线的原理和画法...
  4. odoo10 工作流、安全机制、向导
  5. C语言成长学习题(十六)
  6. 城市轨道交通运营票务管理论文_解读新版《天津市轨道交通票务管理定》
  7. Objective-C 的OOP(下)-类(static)方法、实例方法、overwrite(覆写)、属性(property)...
  8. flowable用户组的处理
  9. 基于Given变换的QR分解辨析
  10. transit, transfer, convey-conveyance, transport-transportation
  11. VS2010中使用Fixdays字体的方法
  12. 项目任务管理工具Project Office for mac
  13. Selenium-鼠标操作
  14. 如何降低IE安全级别
  15. MD5 算法的加密、撞库破解及Python实现和操作演示
  16. 在计算器中如何计算以2为底3的对数 log 2 3
  17. 渗透之——SQLMap参数说明
  18. LWC 67: 764. Largest Plus Sign
  19. 基于单片机自制MP3播放器,开源所有电路图,单片机程序
  20. APP开发:线上教育APP盈利模式分析

热门文章

  1. Linux系统概念复习
  2. 卸载亚信的安全杀毒软件
  3. Java面试题3(jsp)
  4. php网站扫描工具,网站目录文件扫描工具dirbuster
  5. tensorflow 2.0 基础操作 之 不同 dim 对应的具体含义
  6. Apollo(一)-基本介绍
  7. 有m个人围成一圈,顺序编号,编号固定,从1道n循环报数,遇到n出圈,依次类推。。。。。
  8. Swift强大的数组
  9. Serializable的含义
  10. [Python] 相关性分析