出于学习或者其它项目需求,自己又没有域名和专门的数据库服务器,但想要通过外网来连接本地SQLServer数据库的,可以尝试使用内网穿透。
实验时间:2023-03-21
实验环境:Windows 10
+ SQLServer 2008 R2
+ 花生壳
一、原理
1、内网
内网就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。
2、外网
外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。
3、内网穿透
一般而言,在没有固定公网IP的情况下,外网设备无法直接访问内网设备。而通过内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。
内网穿透,又称为NAT穿透。NAT背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。
该技术除了可以访问隐藏在NAT后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。
由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。
二、步骤
我这里是通过花生壳还实现内网穿透的,安装花生壳内网穿透软件,在软件上添加映射时,配置被访问内网设备的相关信息 ,以及选择用作外网访问该映射的域名。当映射诊断信息提示连接成功时,即可实现内网穿透。
具体步骤如下:
1、注册一个花生壳账号
花生壳官网:https://hsk.oray.com/
2、新增一个映射
SQLserver 使用的协议是 TCP,默认端口是1433。
外网域名使用花生壳免费提供的就行,端口选择动态端口,到时花生壳也会自动给你分配一个免费端口。
3、查看我的映射
如下为我新增好的一个映射,查看右边的诊断信息提示连接成功,则表示映射已经创建好了。
注意:创建好的花生壳映射是会自动分配一个端口号的,到时候远程接连 SQLServer 也是使用这个新的端口号,而不是使用原来的1433。如上图看出,我要远程连的端口是46679。
4、远程连接 SQLserver
服务器名称那里输入花生壳映射出来的域名(或者域名指向的ip)和端口号,然后再输入 SQLServer 的账号、密码即可。
注意:
1)服务器名称的输入格式,要用英文逗号将ip和端口号隔开。否则就会连不上,如下:
2)要将服务器的 SQLserver 设成允许远程连接。
5、连接成功
参考
B站的这篇文章写得挺不错的,想深入了解内网穿透原理的同学可以看看:B站最详细内网穿透原理