Appearance
frp
开始使用
frp 采用 Go 语言编写,支持跨平台,只需下载适用于您平台的二进制文件即可执行,无需额外依赖。
- 编写配置文件,目前支持的文件格式包括 TOML/YAML/JSON,旧的 INI 格式仍然支持,但已经不再推荐;
- 使用以下命令启动服务器:
./frps -c ./frps.toml; - 使用以下命令启动客户端:
./frpc -c ./frpc.toml; - 如果需要在后台长期运行,建议结合其他工具,如
systemd和supervisor。
有关如何编写配置文件,请参考示例部分中的内容。
完整的配置项说明,请参考 Reference 中的内容。
参考示例
Web 代理
HTTPS 代理
注意,frp 的 HTTPS 代理需要本地服务是 HTTPS 服务,frps 不会做 TLS 终止。可以:
- 结合
https2http插件来实现将本地的 HTTP 服务以 HTTPS 协议暴露出去; - 推荐 使用 Nginx 终止 SSL/TLS 连接。
服务端
frps.toml配置在
frps.toml文件中添加以下内容,以指定 HTTP 请求的监听端口为8080:INIbindPort = 7000 vhostHTTPPort = 8080如果需要配置 HTTPS 代理,还需要设置
vhostHTTPSPort。客户端
frpc.toml配置在
frpc.toml文件中添加以下内容,确保设置了正确的服务器 IP 地址、本地 Web 服务监听端口和自定义域名:INIserverAddr = "x.x.x.x" serverPort = 7000 [[proxies]] name = "web" type = "http" localPort = 80 customDomains = ["www.yourdomain.com"] [[proxies]] name = "web2" type = "http" localPort = 8080 customDomains = ["www.yourdomain2.com"]启动
frps和frpc域名解析
将
www.yourdomain.com和www.yourdomain2.com的域名 A 记录解析到服务器的 IP 地址x.x.x.x。如果服务器已经有对应的域名,您还可以将 CNAME 记录解析到原始域名。另外,通过修改 HTTP 请求的 Host 字段也可以实现相同的效果。通过浏览器访问
使用浏览器访问
http://www.yourdomain.com:8080即可访问内网机器上的80端口服务,访问http://www.yourdomain2.com:8080可以访问内网机器上的8080端口服务。
使用 systemd
此示例演示如何在 Linux 系统下使用 systemd 来管理 frps 服务,包括启动、停止、配置后台运行和设置开机自启动。
在 Linux 系统下,使用 systemd 可以方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动。
以下是具体的操作步骤:
安装
systemd如果您的 Linux 服务器上尚未安装
systemd,可以使用包管理器如yum(适用于 CentOS/RHEL)或apt(适用于 Debian/Ubuntu)来安装它:Bash# 使用 yum 安装 systemd(CentOS/RHEL) yum install systemd # 使用 apt 安装 systemd(Debian/Ubuntu) apt install systemd创建
frps.service文件使用文本编辑器(如
vim)在/etc/systemd/system目录下创建一个frps.service文件,用于配置frps服务。Bash$ sudo vim /etc/systemd/system/frps.service写入内容:
INI[Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动 frps 的命令,需修改为您的 frps 的安装路径 ExecStart = /path/to/frps -c /path/to/frps.toml [Install] WantedBy = multi-user.target使用
systemd命令管理frps服务Bash# 启动 frp sudo systemctl start frps # 停止 frp sudo systemctl stop frps # 重启 frp sudo systemctl restart frps # 查看 frp 状态 sudo systemctl status frps设置
frps开机自启动Bashsudo systemctl enable frps
通过遵循上述步骤,您可以轻松地使用 systemd 来管理 frps 服务,实现启动、停止、自动运行和开机自启动。确保替换路径和配置文件名称以匹配您的实际安装。