FRP 内网穿透搭建(无域名版)
1.为什么要内网穿透
FRP可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
**使用场景:**公网服务器监听某个端口等待内网服务器连接,内网服务器连接成功后,用户访问公网的某一个端口,访问的所有内容都会转发到内网服务器,也就是所有的请求都会经过公网服务器转发一次,还不是真正的完全内网穿透。
具体一点就是,假如我在家里或者办公室,开发对接微信支付功能,支付成功之后,微信要回调我们的代码,微信肯定访问不到我家里或者办公室里的电脑,因为我的电脑不在公网,我是局域网内,该怎么搞呢?
此时就可以用FRP内网穿透,实施方案就是,购买一台腾讯云服务器或者其他厂家的云服务器,在云服务器上搭建一个FRP服务端,我的电脑上搭建一个FRP的客户端,把FRP服务器的业务端口开放出去,此时告诉微信回调我的FRP服务器业务端口,FRP收到请求之后,在把请求转发到我的电脑上,这样就完成了,支付的回调,也相当于我的局域网,有了一个外网的入口。
2.搭建环境
我的搭建环境,用于http请求 服务器版本:CentOS Stream 8 64bit FRP版本:frp_0.46.0_linux 64位 自己电脑:MAC M2 FRP开源项目:https://github.com/fatedier/frp
3.安装
3.1服务端下载
所有的版本:https://github.com/fatedier/frp/releases 用frp_0.43截图说明一下

3.2配置服务端
服务器端直接解压,就可以配置,然后运行
tar -zxvf frp_0.46.0_darwin_arm64.tar.gz
mv frp_0.46.0_darwin_arm64 /usr/local/frp
12
修改FRP服务器配置
[common]
# 用于客户端和服务端连接的端口,自己指定
bind_port = 7000
# 用于客户端和服务端连接的口令,自己指定
token = 18fx9AG*********kx11e
# 服务端仪表板的端口,自己指定
dashboard_port = 7500
# 打开仪表板页面登录的用户名和密码
dashboard_user = admin
dashboard_pwd = *****
# 这个端口就是服务器开放到外网的,业务端口
vhost_http_port = 8081
3.3配置systemctl
也可以跳过配置systemctl,直接用以下命令行启动
cd /usr/local/frp
./frps -c ./frps.ini
12
服务端配置 systemctl 来控制frps,自启动 vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description = frps service
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.ini
[Install]
WantedBy = multi-user.target
启动服务端 frps 命令
# 启动frps
systemctl start frps
# 开机自动启动frps
systemctl enable frps
# 重启frps
systemctl restart frps
# 停止frps
systemctl stop frps
# 查看frps状态
systemctl status frps
12345678910
3.4客户端下载
和服务器的下载是同一个包,相同的解压,不再累述
3.5配置客户端
frpc.toml配置
[common]
# FRP服务器IP,改为自己的服务器IP
server_addr = 43.143.111.11
# FRP服务器bind_port端口
server_port = 7342
authentication_method = token
token = 18fx9AG*********kx11e
[web]
type = http
local_ip = 127.0.0.1
local_port = 8081
remote_port = 8081
# FRP服务器IP,可以不需要域名
custom_domains = 43.143.111.11
123456789101112131415
更多配置信息看官网:https://gofrp.org/zh-cn/docs/setup/
3.6启动客户端
命令行执行,/Users/***/Downloads/frp 目录是我的客户端安装目录
/Users/***/Downloads/frp/frpc -c /Users/***/Downloads/frp/frpc.ini
启动成功,客户端命令行会输出以下信息
2024-05-24 16:31:53.419 [I] [proxy/proxy_manager.go:173] [7ada7f86bf6f14b1] proxy added: [test-tcp]
2024-05-24 16:31:53.419 [I] [client/service.go:184] admin server listen on 127.0.0.1:7400
2024-05-24 16:31:53.471 [I] [client/control.go:168] [7ada7f86bf6f14b1] [test-tcp] start proxy success
FRP配置完成,启动成功,这样就可以在任何地方,访问
http://43.143.111.11:8081/***
此请求都会转发到你自己的电脑上。
3.7 仪表盘
访问下面地址以查看http连接的仪表板
http://43.143.111.11:7500

四、注意
- 云服务器使用的如
7000、7500、8081端口,要在云服务器上的安全策略或者防火墙配置里,开放出来, - 自己本机的8081端口的服务要启动起来
