frp V2使用教程

news/2024/9/23 0:32:26/

教程适合小白,按照步骤操作即可

使用 systemd

安装

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

创建 frps.service 文件

使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。

$ sudo vim /etc/systemd/system/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

使用 systemd 命令管理 frps 服务

# 启动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

通过遵循上述步骤,您可以轻松地使用 systemd 来管理 frps 服务,实现启动、停止、自动运行和开机自启动。确保替换路径和配置文件名称以匹配您的实际安装。

代理类型

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 端口的多路复用,允许通过同一端口访问不同的内网服务。

每种代理类型适用于不同的使用情境,您可以根据需求选择合适的代理类型来配置 frp。

示例

在这里,您将找到多个常见的使用场景和配置示例,可供您用来亲自部署和体验这些示例。

通过 SSH 访问内网机器

步骤

  1. 在具有公网 IP 的机器上部署 frps

部署 frps 并编辑 frps.toml 文件。以下是简化的配置,其中设置了 frp 服务器用于接收客户端连接的端口:

bindPort = 7000
  1. 在需要被访问的内网机器上部署 frpc

部署 frpc 并编辑 frpc.toml 文件,假设 frps 所在服务器的公网 IP 地址为 x.x.x.x。以下是示例配置:

serverAddr = "x.x.x.x"
serverPort = 7000[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
  • localIP 和 localPort 配置为需要从公网访问的内网服务的地址和端口。
  • remotePort 表示在 frp 服务端监听的端口,访问此端口的流量将被转发到本地服务的相应端口。
    启动 frps 和 frpc
  1. 通过 SSH 访问内网机器

使用以下命令通过 SSH 访问内网机器,假设用户名为 test:

ssh -o Port=6000 test@x.x.x.x

frp 将请求发送到 x.x.x.x:6000 的流量转发到内网机器的 22 端口。

多个 SSH 服务复用同一端口

通过使用 tcpmux 类型的代理,您可以实现多个 SSH 服务通过同一端口进行暴露。这种方法还适用于任何支持 HTTP Connect 代理连接方式的客户端,以实现端口的复用。
步骤

  1. 在具有公网 IP 的机器上部署 frps

修改 frps.toml 文件以包含以下内容(这里使用了最简化的配置):

bindPort = 7000
tcpmuxHTTPConnectPort = 5002
  1. 在内网机器 A 上部署 frpc

创建 frpc 配置文件,例如 frpc.toml,然后将以下内容添加到配置文件中:

serverAddr = "x.x.x.x"
serverPort = 7000[[proxies]]
name = "ssh1"
type = "tcpmux"
multiplexer = "httpconnect"
customDomains = ["machine-a.example.com"]
localIP = "127.0.0.1"
localPort = 22
  1. 在内网机器 B 上部署另一个 frpc

创建 frpc 配置文件,例如 frpc.toml,然后将以下内容添加到配置文件中:

serverAddr = "x.x.x.x"
serverPort = 7000[[proxies]]
name = "ssh2"
type = "tcpmux"
multiplexer = "httpconnect"
customDomains = ["machine-b.example.com"]
localIP = "127.0.0.1"
localPort = 22
  1. 通过 SSH ProxyCommand 访问内网机器 A

使用 SSH ProxyCommand 访问内网机器 A&


http://www.ppmy.cn/news/1435028.html

相关文章

Vue入门篇:概念,快速入门,插值表达式,核心特性,基本Vue指令

目录 1.Vue是什么2.快速入门3.插值表达式{{}}1.作用:2.语法:3.插值表达式的注意点: 4.Vue响应式核心特性5.Vue指令 1.Vue是什么 Vue是一个流行的JavaScript框架,用于构建用户界面。它是一种用于构建单页面应用程序(SPA)的渐进式框架&#xff…

【刷题】代码随想录算法训练营第二十二天|235、二叉搜索树的最近公共祖先,701、二叉搜索树中的插入操作,450、删除二叉搜索树中的节点

目录 235、二叉搜索树的最近公共祖先701、二叉搜索树中的插入操作450、删除 235、二叉搜索树的最近公共祖先 讲解: 回忆一下递归的三部曲,以这题为例。 1、参数: 当前节点和两个节点。 Treenode* cur, Treenode*p, Treenode*q2、递归终止条…

广州大学计算机网络实验报告一《Windows网络测试工具》2023年

广州大学学生实验报告 开课学院及实验室 学院 年级、专业、班 姓名 学号 实验课程名称 计算机网络实验 成绩 优 实验项目名称 Windows网络测试工具 指导老师 (1)实验目的 理解上述知识点所涉及的基本概念并学会使用这些工…

Flask:URL与视图的映射

默认端口号80、443 blog_id 限制数据类型的话(int) 除此之外别的数据类型也可以,或者多个(用any) /book/list?page6

Java 的 Apache Commons 工具库 助力开发

Apache Commons 是什么? Apache Commons 是由 Apache 软件基金会提供的一系列开源、高质量的 Java 组件集合。它包含了各种常用的、经过严格测试的工具类,弥补了 Java 标准库在功能上的不足。这些组件广泛应用于字符串处理、数据转换、集合操作、文件处…

Golang内存、指针逃逸、垃圾回收机制概览

最近看到了一篇文章是关于go的内存、指针逃逸和垃圾回收机制的,发现自己并未很细致的了解过这方面的内容,于是在翻阅各种文章的情况下,写出了这篇总结,参考文章放在文末,可自取 内存 Go 语言使用一个自带的垃圾收集器…

Linux-虚拟机vmware和Linxu安装

Linxu安装 前言vmware软件下载安装1、虚拟机官网连接2、安装包下载后运行会提示重启电脑然后在运行安装程序3、点击下一步4、必不可少的接收所有条框5、更改安装位置6、取消用户设置,放置自动更新和不稳定版本的升级7、点击安装8、添加许可证Linux-Ubuntu下载1、链接2、在虚拟…

HTML的学习-通过创建相册WEB学习HTML-第二部分

文章目录 二、学习开始3.6、form元素示例:添加form元素示例:action属性添加到form属性中 3.7、input元素示例:在input属性中添加参数 3.8、button元素示例:在button中添加type元素示例:定义单选按钮radio 3.9、id属性示…