frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖.
可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中.
Github:
https://github.com/gofrp/frp-site
https://github.com/fatedier/frp
frp 中文文档:https://github.com/fatedier/frp/blob/dev/README_zh.md
frp 中文文档: https://gofrp.org。
frp 安装部署主要是:解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器上,将 frps 拷贝到具有公网 IP 的机器上,放置在任意目录.
这里以通过 SSH 访问内网机器为例:
服务器端:
[1] - 下载 frp:
mkdir frp && cd frp
wget https://github.com/fatedier/frp/releases/download/v0.34.2/frp_0.34.2_linux_amd64.tar.gz
tar -zxvf frp_0.34.2_linux_amd64.tar.gz
cd frp_0.34.2_linux_amd64/
[2] - 修改服务器端配置文件 frps.ini
,这里采用最简化配置,设置 frp 服务器用户接收客户端连接的端口:
[common]
bind_port = 7000
[3] - 启动服务器端 frps 服务:
# 启动服务端
./frps -c ./frps.ini
客户端:
[1] - 下载 frp:
mkdir frp && cd frp
wget https://github.com/fatedier/frp/releases/download/v0.34.2/frp_0.34.2_linux_amd64.tar.gz
tar -zxvf frp_0.34.2_linux_amd64.tar.gz
cd frp_0.34.2_linux_amd64/
[2] - 修改客户端配置文件 frpc.ini
,如:
[common]
server_addr = xxx.xxx.xxx.xxx # frps 所在服务器的公网 IP
server_port = 7000
[ssh]
type = tcp
local_ip = 192.168.1.65 # 本地需要暴露到公网的服务地址
local_port = 22 # 本地需要暴露到公网的服务地址
remote_port = 6000 # 在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口
[3] - 启动客户端 frpc 服务:
./frpc -c ./frpc.ini
配置完成,即可通过 SSH 访问内网机器,如:
ssh -oPort=6000 username@xxx.xxx.xxx.xxx
frp 会将请求 xxx.xxx.xxx.xxx:6000
的流量转发到内网机器的 22 端口.
更多 frp 示例可见:https://gofrp.org/docs/examples/ssh/ .
2 comments
frp内网穿透这个也必须要服务器嘛?
是的,需要有服务器