Frp 开源项目安装与使用指南
目录结构及介绍
Frp 是一个用于内网穿透的高性能反向代理应用. 其目录结构通常包括以下几个关键部分:
- bin: 包含
frps(服务端程序)和frpc(客户端程序)二进制可执行文件. - conf: 存放配置文件, 如
frps.ini或frpc.ini. - scripts: 内含脚本文件, 例如用于系统服务初始化的脚本.
具体而言, 当我们克隆或下载该项目时, 我们可能会看到如下目录结构:
frp/
├── bin/
│ ├── frps
│ └── frpc
├── conf/
│ ├── frps.ini.example
│ └── frpc.ini.example
└── scripts/
└── init.sh
-
bin/: 此目录中的两个主要文件是
frps, 服务端程序; 以及frpc, 客户端程序. 这些二进制文件构成 frp 的核心组件, 分别负责处理外部连接请求和实现内部网络服务的透传. -
conf/: 此目录下有两份配置文件模板 ——
frps.ini.example和frpc.ini.example. 这些模板文件提供了 frp 各种功能的默认设置, 用户可以根据实际需求进行相应调整, 创建自己的.ini文件并在此基础上更改设定. -
scripts/: 包括各种辅助脚本如
init.sh, 用于设置系统服务, 使得 frps 或 frpc 能够在系统启动时自动运行.
项目启动文件介绍
frps(服务端)
frps 是 frp 的服务端部分, 必须部署在具有公网 IP 地址的主机上. 运行该程序的基本命令语法如下:
./frps -c <path-to-config-file>
其中 <path-to-config-file> 应替换为您实际配置文件的路径.
frpc(客户端)
frpc 则是 frp 的客户端组件, 主要部署在内部网络环境中的机器上. 同样地, 启动该程序的方法如下所示:
./frpc -c <path-to-config-file>
同样, <path-to-config-file> 需指明真实的配置文件位置.
项目配置文件介绍
在 frp 的 conf/ 目录中提供的示例配置文件 .ini.example 形式多样且详细周全, 这里以简化版为例解释其结构:
服务端配置示例 (frps.ini.example)
[common]
bindAddress = 0.0.0.0
bindPort = 7500
vhostHttpPort = 80
vhostHttpsPort = 443
token = someSecretToken
上述片段中的参数是 frp 服务端的关键配置项, 其含义分别为:
bindAddress: 绑定地址, 设置为0.0.0.0表明监听所有可用接口.bindPort: 绑定端口, 默认值为7500.vhostHttpPort: HTTP 服务虚拟主机绑定的端口, 若需使用 HTTP 方式透传则应开启.vhostHttpsPort: HTTPS 服务虚拟主机绑定的端口.token: 用于身份验证的令牌, 客户端必须正确匹配该密钥才能成功建立连接.
客户端配置示例 (frpc.ini.example)
[common]
server_addr = 192.168.1.100
server_port = 7500
token = someSecretToken
log_file = /var/log/frp/frpc.log
[[proxy]]
name = mywebsite
type = http
local_ip = 192.168.1.200
local_port = 8080
custom_domains = example.com
这一段配置对应客户端的部分基本设定, 其中包含:
server_addr: 服务端 IP 地址.server_port: 接受远程连接的端口号, 应当与服务端指定的bindPort参数一致.token: 连接凭证, 同样需同服务端相匹配.[proxy]: 定义具体的代理规则, 可针对不同的内部服务设立多项, 每一项都可能拥有独立的名字(name)、类型(type)及其他特定参数, 如目标机器的 IP(local_ip)和端口(local_port), 要使用的自定义域名(custom_domains)等.
以上介绍了 frp 项目的基础结构与主要组成部分, 包括目录布局、启动方式以及配置文件的具体内容. 在后续实践中, 用户应基于自身的需求灵活调整各参数, 实现高效稳定的网络穿透方案.
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



