Frp


Frp

Frp,全称为 Fast Reverse Proxy,是一款高性能的反向代理应用,支持 TCP、UDP 协议,主要用于内网穿透。Frp 的主要功能是帮助用户在有 NAT 或防火墙的环境中建立一个稳定的、低延迟的网络连接。它常被用于远程访问局域网内的服务,如访问家庭网络中的 NAS、游戏服务器、网站服务器等。

代理类型:

frp 支持多种代理类型,以适应不同的使用场景。以下是一些常见的代理类型:

  • TCP:提供纯粹的 TCP 端口映射,使服务端能够根据不同的端口将请求路由到不同的内网服务。
  • UDP:提供纯粹的 UDP 端口映射,与 TCP 代理类似,但用于 UDP 流量。
  • HTTP:专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
  • HTTPS:类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
  • STCP:提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
  • SUDP:提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
  • XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。
  • TCPMUX:支持服务端 TCP 端口的多路复用,允许通过同一端口访问不同的内网服务。

1.下载Frp

Github 仓库下载地址:

https://github.com/fatedier/frp/releases

中文文档:

https://gofrp.org/zh-cn/docs/

# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd

# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd

# 创建 frps.service 文件
sudo vim /etc/systemd/system/frps.service

frps.service:

[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
  • [] ⚠️ 从 v0.52.0 版本开始,frp 开始支持 TOML、YAML 和 JSON 作为配置文件格式。INI 已被弃用,并将在未来的发布中移除。新功能只能在TOML、YAML 或 JSON 中使用。希望使用这些新功能的用户应相应地切换其配置格式。

2.服务端Frp配置

frps(Server):这是 frp 的服务器端组件,需要部署在一个公网可访问的位置,如一台具有公网 IP 的服务器上。frps 负责接收来自客户端的连接请求,并将这些请求转发到相应的内网服务上。

bindPort = 7000

3.客户端Frp配置

frpc(Client):这是 frp 的客户端组件,部署在需要穿透 NAT 或防火墙的内网环境中。frpc 会主动连接到 frps,然后通过 frps 实现与公网的通信。

serverAddr = "x.x.x.x"
serverPort = 7000

[[proxies]]
name = "secret_ssh"
type = "stcp"
# 只有与此处设置的 secretKey 一致的用户才能访问此服务
secretKey = "abcdefg"
localIP = "127.0.0.1"
localPort = 22
#通过 SSH 访问内网机器,假设用户名为 test
ssh -o Port=6000 test@127.0.0.1

4.自启动

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
# frps 开机自启动
sudo systemctl enable frps

文章作者: Anubis
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Anubis !
评论
  目录