1. 什么是frp?
frp (Fast Reverse Proxy) 是一个快速的反向代理工具,可以将内网的服务暴露到外网。它可以通过 TCP、HTTP、HTTPS 等方式实现端口映射,支持多种安全认证方式等特性。使用 frp 工具,可以实现内网主机使用反向代理的方式暴露服务给外网和共缩成内网穿透工具,实现内网可访问外网的效果。
2. MSSQL 端口映射实现原理
要实现内网的 MSSQL 服务对外提供访问,可以通过在内网服务器中运行 frps 服务,将 1433 端口映射到外网,外网客户端通过连接 frpc 客户端的方式实现与内网 MSSQL 端口的通讯。
2.1. 在内网服务器中安装frps
安装 frps 的方式很简单,其主要操作有如下两步:
下载适合你服务器操作系统的 frps 二进制文件包,可以从 https://github.com/fatedier/frp/releases 获取,解压到任意位置。
配置 frps 服务的配置文件 frps.ini,可参考以下内容:
[common]
bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
[demo]
type = tcp
local_ip = 127.0.0.1
local_port = 1433
remote_port = 10086
上面的配置文件中,[common] 段为全局配置,[demo] 段为具体端口映射的配置。
我们需要特别注意下面这一行:
type = tcp
这个代表我们要使用 TCP 连接,如果使用 UDP 可以改成 udp。
2.2. 在外网客户端中安装frpc并连接
frpc 是 frp 的客户端,用于穿透内网实现对内网服务的访问。
同样,安装 frpc 的方式也很简单:
下载适合你的操作系统的 frpc 二进制文件包,可以从 https://github.com/fatedier/frp/releases 获取,解压到任意位置。
配置 frpc 服务的配置文件 frpc.ini,可参考以下内容:
[common]
server_addr = 1.2.3.4
server_port = 7000
pool_count = 5
[demo]
type = tcp
local_port = 10086
remote_port = 1433
上面的配置文件中,[common] 段为全局配置,[demo] 段为具体端口映射的配置。
我们需要特别注意下面这一行:
type = tcp
这个代表我们要使用 TCP 连接,如果使用 UDP 可以改成 udp。
配置完成后,运行 frpc,并通过客户端连接到 frps 服务,通过访问外网地址,即可访问内网 MSSQL 服务端口了。
3. 总结
通过使用 frp 工具,可以实现内网 MSSQL 服务对外提供访问,这对于一些需要对内网数据进行分析或在外网需要访问内网数据的情况非常有用。但使用此工具需要注意安全风险,需要在配置好安全认证后使用。