如何使用 frp 内网穿透将本地服务暴露在外网上

39 篇文章 2 订阅
8 篇文章 0 订阅

如何使用 frp 内网穿透将本地服务暴露在外网上

我们有时需要将自己本地的服务暴露在外网中,比如微信支付、支付宝支付等调试的时候,或者是自己刚刚开发好的某个应用需要被别人在外网访问到,此时就需要使用内网穿透了

准备工作

1.首先我们需要有一个外网服务器
2.下载对应系统的 frp 工具 ⇲ 前往下载

部署服务端

1.根据你服务端的系统获取对应版本的frp

在这里插入图片描述

2.将对应版本的 frp 解压到你的服务器上

tar -zxvf frp压缩包 :解压文件到当前文件夹

[root@VM-12-5-centos opt]# tar -zxvf frp_0.44.0_linux_amd64.tar.gz 
frp_0.44.0_linux_amd64/
frp_0.44.0_linux_amd64/frpc.ini
frp_0.44.0_linux_amd64/LICENSE
frp_0.44.0_linux_amd64/frpc
frp_0.44.0_linux_amd64/frpc_full.ini
frp_0.44.0_linux_amd64/frps.ini
frp_0.44.0_linux_amd64/frps
frp_0.44.0_linux_amd64/frps_full.ini
[root@VM-12-5-centos opt]# 
3.进入 frp 目录中修改服务端配置文件 frps.ini

frps.ini 为服务端配置文件
frpc.ini 为客户端配置文件

配置文件(每个配置上方都有注释,注意查看):

[common]
# 绑定服务器的服务端口
bind_port = 7000

# 设置http端口和https端口(可以与“bind_port”相同)
# vhost_http_port = 80
# vhost_https_port = 443
# 由于当前服务器使用了nginx占用了 80443 端口,所以我这里使用 7001 
# 后期可以使用 nginx 转发到该端口,不进行 nginx 转发的话直接域名加该端口也是可以访问设置的穿透服务的

vhost_http_port = 7001


# 如果subdomain_host参数不为空,可以在frpc(客户端)的配置文件(frpc.ini)中的type=http或者type=https的项目中设置子域名
# 例如,frpc(客户端)的配置文件中的 subdomain 为 test 时,主机会路由到 test.你的域名.com 网址。 

subdomain_host = 你的域名.com


#仪表盘 设置后可通过该端口访问 frp 服务端 Web 管理界面
dashboard_port = 7002
dashboard_user = admin
dashboard_pwd = admin
# Enable dashboard first, then configure enable_prometheus = true in frps.ini.
# http://{dashboard_addr}/metrics will provide prometheus monitor data.
enable_prometheus = true

#日志
log_file = /opt/frp/log/frps.log
log_level = info
# 日志最多保存天数
log_max_days = 7
4.运行 frp 服务端

使用命令 nohup ./frps -c ./frps.ini & 在后台启动服务端

[root@VM-12-5-centos frp]# nohup ./frps -c ./frps.ini &
5.我们访问服务器的 7002 端口来访问配置的仪表盘Web管理页面

在这里插入图片描述
输入配置的账号密码显示此界面服务端就配置成功了,如果访问失败,我们可以查看错误日志,来定位错位

6.然后参考下方客户端配置来配置客户端

参看下一章节 “部署客户端” 配置时可观察服务端的日志输出

7.nginx反向代理配置

1.这里我使用 二级域名 frp 来访问所有关于 frp 的服务

2.如下图将 frp.xx.cn 代理到 7002 端口的服务端仪表盘Web管理页面
3.将所有穿透服务 *.frp.xsx.cn (* 为客户端配置的 subdomain 子域名) 代理到 frp 服务端配置的vhost_http_port 即 7001 端口

在这里插入图片描述
此时我们就可以通过域名直接访问我们穿透的本地服务了

部署客户端

1.将对应系统的 frp 文件解压到客户端

因为大多客户端都为图形化界面,此处省略

2.进入 frp 文件夹内修改客户端配置文件 frpc.ini

配置文件(每个配置上方都有注释,注意查看):

# frp内网穿透 服务端地址 你的域名.com

# 示例
# #服务名称(自定义,用于区分多个内网服务),标识该块配置的服务名
# [service_name]
# #标识为 http 请求
# type = http
# # 需要穿透的本地服务端口
# local_port = 10089
# # 设置访问当前被穿透服务外网地址的子域名 (当前被穿透的服务外网访问地址为:test.你的域名.com)
# subdomain = test
# 穿透服务有多个时也可配置多个,下方配置了两个穿透服务 hereitis_service 和 hereitis_admin 服务名可自定义

[hereitis_service]
type = http
local_port = 10089
subdomain = servicehereitis

[hereitis_admin]
type = http
local_port = 1024
subdomain = adminhereitis


[common]
# 填入你的服务端所在外网IP
server_addr = 0.0.0.0
# 填入你的服务端绑定的服务端口
server_port = 7000
# 客户端管理界面配置(配置后可通过 7400 端口访问该管理界面)
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin
3.进入控制台启动客户端

进入frp目录后使用命令./frpc -c ./frpc.ini启动客户端

yunchuchu@chaochudeMBP ~ % cd service/frp 
yunchuchu@chaochudeMBP frp % ./frpc -c ./frpc.ini
2022/08/21 13:43:23 [I] [service.go:349] [0e69107d277b4d00] login to server success, get run id [0e69107d277b4d00], server udp port [0]
2022/08/21 13:43:23 [I] [proxy_manager.go:144] [0e69107d277b4d00] proxy added: [hereitis_service hereitis_admin]
2022/08/21 13:43:23 [I] [service.go:158] admin server listen on 127.0.0.1:7400
2022/08/21 13:43:23 [I] [control.go:181] [0e69107d277b4d00] [hereitis_service] start proxy success
2022/08/21 13:43:23 [I] [control.go:181] [0e69107d277b4d00] [hereitis_admin] start proxy success
4.访问客户端管理 Web 页面

在这里插入图片描述
此时我们可以看到两个穿透服务都配置成功了

5.我们访问服务器配置的 7001 端口

注意:
1.注意必须通过配置的域名才可以访问的到
2.域名为:客户端配置的subdomain.服务端配置的subdomain_host
3.我们也可通过客户端管理界面得 remote address 查看
4.注意该域名是否可以访问到该服务器,访问不到请先对域名进行相应的DNS设置

在这里插入图片描述

6.此时我们成功通过域名+端口访问到本地服务

在这里插入图片描述

如果不想使用端口号请将服务端的 vhost_http_port 设置为 80
如果80端口被nginx占用,我们可以使用 nginx 将服务转发到 7001 端口,具体可参看上方服务端部署

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云储储

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值