frp内网穿透|青训营笔记

239 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第一篇笔记
在第九节课,陈老师给我们介绍了ngork用于暴露本地服务到公网,本篇文章介绍另外一个工具frp。

frp简介

frp是一个用go语言编写的高性能socket网络代理工具,可以用来做内网穿透,将本地服务暴露到公网(需要一个有公网ip的服务器)。

服务端配置

首先在拥有公网ip的服务器上下载frp并解压,以 0.32.1 版本为例

#下载解压
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
tar -xzf frp_0.32.1_linux_amd64.tar.gz
#配置
cd frp_0.32.1_linux_amd64
vim frps.ini

frps.ini 配置文件内容如下:

[common]
#这是frp客户端和服务端用来通信的端口
bind_port = 7000
#这是可接受的客户端ip地址,0.0.0.0表示任意ip
bind_addr = 0.0.0.0
#这个是鉴权方式,这里选择token
authentication_method = token
#token具体值可自定义,客户端和服务端一致即可
token = 666666
#这个是frp自带的管理网页,用来监控一些信息
dashboard_port = 37500
dashboard_user = admin
dashboard_pwd = 6666

配置文件填好之后就可以启动了

./frps -c ./frps.ini

客户端配置

同样首先可以去frp的github地址下载对应版本的release压缩包,然后解压
由于是客户端,我们配置frpc.ini文件。

[common]
#这个是服务器的公网ip(frps跑在这台机器上)
server_addr = 112.144.188.221
#这个是frps.ini里的bind_port,下面两个也与frps.ini里一致
server_port = 7000
authentication_method = token
token = 666666
[tiktok]
type = tcp
local_ip = 127.0.0.1
#这个是本地待映射的端口
local_port = 8080
#这个是映射到frp服务器的对应端口
remote_port = 9099

配置好客户端后就可以运行了,windows下可以cmd命令行输入 frpc.exe 运行即可
默认使用当前目录下的frpc.ini文件作为配置文件。

测试运行

客户端运行成功后应该可以看到:

image.png 这样访问 112.144.188.221:9099 就会对应本地的 8080 端口,就可以用公网ip访问本地的服务啦!
同理访问112.144.188.221:37500 可以访问到对应的仪表盘网页,用frps.ini里面的用户名和密码登录后就可以可以看到一些监控信息。