利用公网 IP 服务器搭建 FRP 内网穿透服务
疫情原因,居家办公。公司网络虽然可以接入外网,却没有公网 IP,然而开发环境大多都在公司网络环境下,所以需要将内网环境服务映射出来,以便在家可以访问。例如代码仓库 GitLab、数据库服务、容器镜像仓库服务、Maven 仓库服务等。1. 基础条件★ 具有公网 IP 服务器一个(必要,没有的话可以不用往下看了)域名一个,用于 http 服务转发时配置子域名(不需要转发 HTTP 的话可以不用)DDN
疫情原因,居家办公。公司网络虽然可以接入外网,却没有公网 IP,然而开发环境大多都在公司网络环境下,所以需要将内网环境服务映射出来,以便在家可以访问。例如代码仓库 GitLab、数据库服务、容器镜像仓库服务、Maven 仓库服务等。
1. 基础条件
- ★ 具有公网 IP 服务器一个(必要,没有的话可以不用往下看了)
- 域名一个,用于 http 服务转发时配置子域名(不需要转发 HTTP 的话可以不用)
- DDNS 动态域名服务(公网 IP 会改变的情况下需要,如果是阿里云之类的服务器则不需要)
2. 域名解析
这里有点绕,举例说一下:
- 假设我的域名是
abc.com
- 首先需要一个
A
类型的记录,记录公网 IP,由于我有个 NAS 需要使用,所以主机记录为nas
- 还需要一个
CNAME
类型的记录,主机记录为*.frp
,记录值为nas.abc.com
,即与该域名保持一致 IP
3. 下载安装 FRP
Github 地址是 https://github.com/fatedier/frp
不区分客户端和服务端,都在同一个包中,但是需要区分系统版本和架构信息,下载完成后解压缩。
4. 服务端(具有公网 IP 服务器)
修改 frps.ini
文件
[common]
bind_port = 11100
vhost_http_port=11101
subdomain_host = frp.abc.com
启动服务
./frps -c ./frps.ini
5. 客户端(内网机器)
修改 frpc.ini
文件
[common]
server_addr = nas.fukang.site
server_port = 11100
[ssh]
type = tcp
local_ip = 172.22.1.240
local_port = 22
remote_port = 11102
[web]
type = http
local_ip = 172.22.1.240
local_port = 8080
subdomain = rancher
[web2]
type = http
local_ip = 172.22.1.171
local_port = 30880
subdomain = kubesphere
启动服务
./frpc -c ./frpc.ini
6. 访问验证
访问 http://kubesphere.frp.abc.com:11101
即可对应访问到内网 http://172.22.1.171:30880
这个服务。
同理,http://rancher.frp.abc.com:11101
也可以访问到内网 172.22.1.240:8080
这个服务。
7. 补充
FRP 是个十分强大的工具,还有许多用法,可以参考 FRP 官方文档 。
由于宽带运营商 IP 资源有限,即便申请到公网 IP 也不是固定的,一定要 DDNS 动态解析。
条件允许的话,建议购买阿里云、腾讯云等等的云服务器,这样就可以分配固定公网 IP。
如果不想购买云服务器,也可以搭建黑群晖 NAS,十分强大。
更多推荐
所有评论(0)