FRP 内网穿透搭建(无域名)

一、为什么要内网穿透

FRP 可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。

使用场景:公网服务器监听某个端口等待内网服务器连接,内网服务器连接成功后,用户访问公网的某一个端口,访问的所有内容都会转发到内网服务器,也就是所有的请求都会经过公网服务器转发一次,还不是真正的完全内网穿透。

具体一点就是,假如我在家里或者办公室,开发对接微信支付功能,支付成功之后,微信要回调我们的代码,微信肯定访问不到我家里或者办公室里的电脑,因为我的电脑不在公网,我是局域网内,该怎么搞呢?

此时就可以用FRP内网穿透,实施方案就是,购买一台腾讯云服务器或者其他厂家的云服务器,在云服务器上搭建一个FRP服务端,我的电脑上搭建一个FRP的客户端,把FRP服务器的业务端口开放出去,此时告诉微信回调我的FRP服务器业务端口,FRP收到请求之后,在把请求转发到我的电脑上,这样就完成了,支付的回调,也相当于我的局域网,有了一个外网的入口。

贴一张官方的架构图
在这里插入图片描述

二、搭建环境

我的搭建环境,用于http请求
服务器版本:CentOS Stream 8 64bit
FRP版本:frp_0.46.0_linux 64位
自己电脑:MAC M1
FRP开源项目:https://github.com/fatedier/frp

三、安装

3.1服务端下载

所有的版本:https://github.com/fatedier/frp/releases
用frp_0.43截图说明一下
在这里插入图片描述
服务器执行下载

wget https://github.com/fatedier/frp/releases/download/v0.46.0/frp_0.46.0_darwin_arm64.tar.gz

3.2配置服务端

服务器端直接解压,就可以配置,然后运行

tar -zxvf frp_0.46.0_darwin_arm64.tar.gz
mv frp_0.46.0_darwin_arm64 /usr/local/frp

修改FRP服务器配置
vim frps.ini

[common]
# 用于客户端和服务端连接的端口,自己指定
bind_port = 7342
# 用于客户端和服务端连接的口令,自己指定
token = 18fx9AG*********kx11e
# 服务端仪表板的端口,自己指定
dashboard_port = 7343
# 打开仪表板页面登录的用户名和密码
dashboard_user = aaa
dashboard_pwd = *****
# 这个端口就是服务器开放到外网的,业务端口
vhost_http_port = 8081

3.3配置systemctl

也可以跳过配置systemctl,直接用以下命令行启动

cd /usr/local/frp
./frps -c ./frps.ini

服务端配置 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

3.4客户端下载

和服务器的下载是同一个包,相同的解压,不再累述

3.5配置客户端

frpc.ini配置

[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

3.6启动客户端

命令行执行,/Users/***/Downloads/frp 目录是我的客户端安装目录

/Users/***/Downloads/frp/frpc -c /Users/***/Downloads/frp/frpc.ini

启动成功,客户端命令行会输出以下信息

2023/01/06 11:21:42 [I] [service.go:298] [d4f0e8d8ab60ccf7] login to server success, get run id [d4f0e8d8ab60ccf7], server udp port [0]
2023/01/06 11:21:42 [I] [proxy_manager.go:142] [d4f0e8d8ab60ccf7] proxy added: [web]
2023/01/06 11:21:42 [I] [control.go:172] [d4f0e8d8ab60ccf7] [web] start proxy success

FRP配置完成,启动成功,这样就可以在任何地方,访问

http://43.143.111.11:8081/***

此请求都会转发到你自己的电脑上,

3.7 仪表盘

访问下面地址以查看http连接的仪表板

http://43.143.111.11:7343

在这里插入图片描述

四、注意

  1. 云服务器上8081端口,要在云服务器上的安全策略或者防火墙配置里,开放出来,
  2. 自己本机的8081端口的服务要启动起来

猜你喜欢

转载自blog.csdn.net/lihuayong/article/details/128575019
今日推荐