使用frp对本地服务进行简单的端口映射

Kaku Lv3

frp 内网穿透介绍与配置指南

什么是 frp?

frp 是一个专注于内网穿透的高性能反向代理应用,它支持 TCP、UDP、HTTP、HTTPS 等多种协议。通过 frp,您可以将以安全且便捷的方式将内网服务通过具有公网 IP 的节点中转并暴露到公网,从而使得内网服务能够被外部网络访问。

frp 项目地址

工作原理

frp 的工作原理主要基于客户端(frpc)和服务端(frps)的架构。服务端通常部署在拥有公网 IP 的机器上,而客户端则部署在需要穿透的内网服务所在机器上。当外部用户尝试访问内网服务时,他们的请求会先发送到服务端,然后由服务端根据请求的端口或其他信息将请求转发给正确的内网机器,从而实现了从公网到内网的服务访问。

配置与应用

系统与设备要求

  • 系统需求:由于 frp 是用 Golang 编写的,其系统需求与最新的 Golang 版本对系统和平台的要求一致。
  • 支持跨平台:frp 支持多种操作系统和架构,只需下载对应平台的二进制文件即可使用,无需额外依赖。
  • 服务端要求:需要具备公网 IP。
  • 客户端要求:能够正常访问服务端。

下载与安装

  • 下载:您可以从 GitHub 的 Release 页面 下载最新版本的 frp。所有文件被打包在一个压缩包中,包括客户端和服务端的二进制文件。
  • 安装:解压下载的压缩包后,将 frpc 拷贝到内网服务所在的机器上,将 frps 拷贝到具有公网 IP 的机器上。

编写配置文件

服务端配置

服务端的最小化配置示例如下:

1
2
3
# frps.ini
[common]
bind_port = 7000

如果您希望启用 web 管理界面,可以在 frps.ini 中添加以下配置:

1
2
3
4
5
6
# frps.ini
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

客户端配置

假设您想要将本机的 SSH 服务(默认监听在 22 端口)通过 frp 映射到公网,客户端的配置示例如下:

1
2
3
4
5
6
7
8
9
10
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

启动服务

  • 启动服务端:在具有公网 IP 的机器上运行 ./frps -c ./frps.ini
  • 启动客户端:在内网机器上运行 ./frpc -c ./frpc.ini

注意事项

  • 端口放通:如果您使用的是云服务,请确保在云服务商的控制台中放通相关的端口。
  • 防火墙设置:确保系统防火墙(如 UFW)对所需端口进行了开放。
  • 后台运行:为了保证服务的稳定性,推荐使用 systemdsupervisor 等工具来管理 frp 的后台运行。
  • 标题: 使用frp对本地服务进行简单的端口映射
  • 作者: Kaku
  • 创建于 : 2024-11-08 17:47:59
  • 更新于 : 2024-11-09 15:36:05
  • 链接: https://www.kakunet.top/2024/11/08/使用frp对本地服务进行简单的端口映射/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论