FRP是什么
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
总而言之,frp就是一个类似跳板机的东西,使得原本在内网的服务可以被公网访问。
安装
因为我的新服务器安了一个 1panel 面板,所以安装步骤直接变得很简洁,直接到面板的应用商店中选择 frp服务端 安装。
然后打开配置文件 frps.toml,进行基本配置
bindAddr: 监听的服务端IP地址
bindPort: 监听的服务端端口号
vhostHTTPPort: 虚拟主机端口 #这个和想的不一样
auth.method: 身份验证方式
auth.token: 身份验证口令
webServer.addr: Web管理面板监听地址
webServer.port: Web管理面板监听端口
webServer.user: Web管理面板用户名
webServer.password: Web管理面板密码
这就是一份 frp 服务端的基本配置,为什么说 vhostHTTPPort 和想象的不一样呢,因为这个东西指的不是 IP:Port 这种访问方式的端口,而是虚拟域名的访问端口,例如当我们在这里设置为 4444 后,我们在客户端访问时就需要在我们的自定义域名后加上这个端口号,这个是一个坑点。
然后我们配置客户端,访问 FRP项目主页,在 release 中选择最新版本,以及自己的平台下载,比如我这里选择的是frp_0.58.1_windows_amd64,下载之后解压,删掉 frps. exe,frps. toml,只留下 frpc 相关的文件,然后打开 frpc.toml,编辑配置如下
serverAddr = "服务器地址"
serverPort = 7000
[auth]
additionalScopes = ['HeartBeats', 'NewWorkConns']
method = 'token'
token = '内容'
[[proxies]]
name = "web-tcp-4444"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["ddnsgo.moe"]
这样一个 http 中转代理的配置就写好了,为什么说有坑点呢,frpc 配置文件中的这个 customDomains 可以是不存在的域名,只需要在 host 文件中做好与服务器 IP 的对应即可,一开始我这里卡了很久,然后发现 http 类型的代理不需要远程端口这一项,但是必须写自定义域名,这样我们需要访问的地址就是 ddnsgo.moe:4444,非常反直觉,然后 frp 会将我们的流量转发到本地的 80 端口,达到访问内网的目的。
连接
在服务端直接在面板上点击启动即可启动 frps
而客户端则需要在 shell 中执行 frpc.exe -c frpc.toml。
此时访问刚才的域名+端口即可。
但我怎么也没找到如何使用 tcp 类型,然后直接 IP:Port 方式访问网站,应该是作者不想支持吧。
总结
通过 frp,实现了对内网服务的访问,方便以后用于反弹 shell 或者拿下服务器后文件传输,命令执行等操作。