Frp 代理内网服务

一. 说明

Frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

Frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。

Frp 分为客户端和服务端2个应用,要配置使用。服务端安装在代理服务器,客户端安装在被代理服务器。

项目地址:https://github.com/fatedier/frp

一. 下载

Release页面中下载到最新版本的客户端和服务端二进制文件

二. 安装

解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器(被代理服务器)上,将 frps 拷贝到具有公网 IP 的机器(代理服务器)上,放置在任意目录。

三. 运行服务端

1
2
3
4
5
6
# 直接运行
./frps -c ./frps.ini
# 后台运行
nohup ./frps -c ./frps.ini &
# 通过 systemd 服务运行,见下个章节

四. 配置 Systemd 服务

编辑 service 配置文件

1
vim /etc/systemd/system/frps.service

写入内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy = multi-user.target

管理服务端

1
2
3
4
5
6
7
8
9
10
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
# 配置 frps 开机自启
systemctl enable frps

五. frps.ini 配置 参考

1
2
3
4
5
6
7
[common]
bind_port = 7001
dashboard_port = 7500
vhost_http_port = 7600
token = X789456123!@
dashboard_user = frp123
dashboard_pwd = X789456123!@

六. 运行客户端

在windows系统下,可通过创建frpc.bat运行。

frpc.bat 配置参考

1
2
3
4
5
@echo off
D:
cd D:\frp_0.50.0_windows_amd64
frpc.exe
cmd

frpc.ini 配置参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[common]
server_addr = 101.33.218.47
server_port = 7001
token = X789456123!@
tls_enable = true

[DES-WEB]
type = tcp
local_ip = 127.0.0.1
local_port = 5580
remote_port = 5580

[DES]
type = tcp
local_ip = 127.0.0.1
local_port = 5558
remote_port = 5558