Loading... > **frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。** > > **开源地址:**[FRP github网址](https://github.com/fatedier/frp) > > **通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:** > > 1. **客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。** > 2. **采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间** > 3. **代理组间的负载均衡** > 4. **端口复用,多个服务通过同一个服务端端口暴露** > 5. **多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作** ## 一、服务端部署 ### Docker部署 #### 1.debian、ubuntu、Centos系统一键安装docker ``` curl -fsSL get.docker.com -o get-docker.sh curl -sSL https://get.daocloud.io/docker | sh sudo sh get-docker.sh --mirror Aliyun ``` #### 2.创建frp.ini文件并创建目录 ``` mkdir /frp vim /frp/frps.ini ``` #### 3.编辑frps.ini配置文件 ``` [common] bind_port = 7000 # 启用面板 dashboard_port = 7500 # 面板登录名和密码 dashboard_user = admin dashboard_pwd = xxxxxx # 使用http代理并使用80端口进行穿透 vhost_http_port = 80 # 使用https代理并使用443端口进行穿透 vhost_https_port = 443 # 日志路径 log_file = ./frps.log # 日志级别 log_level = info # 日志最大保存天数 log_max_days = 2 # 认证超时时间 authentication_timeout = 900 # 认证token,客户端需要和此对应 token=123123123 # 最大连接数 max_pool_count = 5 max_ports_per_client = 0 ``` **官方发现发布 0.52.0 版本后,取消了原有 ****INI** 配置文件,改为 **TOML** 新格式,[完整frps配置](https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml) ``` bindPort = 7000 auth.method = "token" auth.token = "12345678" webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "admin" webServer.password = "admin123456" ``` #### 4.拉取镜像 ``` docker pull snowdreamtech/frps:latest ```  #### 5.启动docker容器 ``` #0.52.0版本之前 docker run --restart=always --network host -d -v /frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps #0.52.0版本之后 docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps ```  #### 6.直接访问dashboard,输入账号密码   **可以直接访问,说明部署成功** ### 本地文件部署 #### 1、下载程序包 **前往**[GitHub Releases页面](https://github.com/fatedier/frp/releases)下载:  **根据自己实际情况选择,我的是x64的windows系统,服务器也是x64架构,选择图中两项。****玩客云是armv7架构,选择linux\_arm包** **解压如下:**  #### 2、配置文件 **官方发现发布 0.52.0 版本后,取消了原有 ****INI** 配置文件,改为 **TOML** 新格式,[完整frps配置](https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml),[完整frpc配置](https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml) ``` # frps.toml bindPort = 7000 # 服务端与客户端通信端口 auth.token = "public" # 身份验证令牌,frpc要与frps一致 transport.tls.force = true # 服务端将只接受 TLS链接 # Server Dashboard,可以查看frp服务状态以及统计信息 webServer.addr = "0.0.0.0" # 后台管理地址 webServer.port = 7500 # 后台管理端口 webServer.user = "admin" # 后台登录用户名 webServer.password = "admin" # 后台登录密码 ``` ``` # frpc.toml transport.tls.enable = true # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true serverAddr = "x.x.x.x" serverPort = 7000 # 公网服务端通信端口 auth.token = "public" # 令牌,与公网服务端保持一致 [[proxies]] name = "test-http" type = "tcp" localIP = "127.0.0.1" # 需要暴露的服务的IP localPort = 9000 # 将本地9000端口的服务暴露在公网的6060端口 remotePort = 6060 # 暴露服务的公网入口 [[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 6000 ``` **注意: 访问的端口一定要开放** #### 3、系统守护启动 **如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 **`yum`(适用于 CentOS/RHEL)或 `apt`(适用于 Debian/Ubuntu)来安装它: ``` # 使用 yum 安装 systemd(CentOS/RHEL) yum install systemd # 使用 apt 安装 systemd(Debian/Ubuntu) apt install systemd ``` **使用文本编辑器 (如 vim) 在 **`/etc/systemd/system` 目录下创建一个 `frps.service` 文件,用于配置 frps 服务。 ``` vim /etc/systemd/system/frps.service ``` **写入内容** ``` [Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frps的命令,/path/to需修改为您的frps的安装路径 ExecStart = /path/to/frps -c /path/to/frps.toml [Install] WantedBy = multi-user.target ``` **使用 systemd 命令管理 frps 服务** ``` # 开机启动frp systemctl enable frps # 启动frp sudo systemctl start frps # 停止frp sudo systemctl stop frps # 重启frp sudo systemctl restart frps # 查看frp状态 sudo systemctl status frps ``` **或者:**也可以使用任意方式编辑 `/usr/lib/systemd/system/frps.service` 并添加如下内容,其中 path\_alist 为 frp 所在的路径 **但需要执行 **`systemctl daemon-reload` 重载配置 ## 二、Windows客户端部署 [**内网穿透工具**:配置生成](https://diannaobos.com/frp/) [Windows客户端下载](https://github.com/fatedier/frp/releases) **压缩包里包含以下文件**  **配置客户端文件,找到压缩包里的frpc.ini。**  **打开frp客户端,运行 打开frpc.bat 即可打开**  ## 三、Android客户端部署 **首先下载Frpc客户端** **GitHub开源项目:**[https://github.com/mainfunx/frpc\_android](https://github.com/mainfunx/frpc_android) **下载仓库最新的(虽说frps须与frpc版本一致,但frps不配置token还是可以跨版本使用的):** [https://github.com/mainfunx/frpc\_android/releases/download/0.39.1.1/frpc\_adnroid-v0.39.1.1.apk](https://github.com/mainfunx/frpc_android/releases/download/0.39.1.1/frpc_adnroid-v0.39.1.1.apk) **下载安装好就是这个样子**   **配置文件如下:(根据个人需求进行修改,切勿照搬)** ``` [common] server_addr = 54.180.101.36 server_port = 55185 [web] type = tcp local_ip = 127.0.0.1 local_port = 9978 remote_port = 7080 [web02] type = tcp local_ip = 127.0.0.1 local_port = 5245 remote_port = 7081 ``` **点保存名字随便取**  ## 四、Magisk-FRPC部署 **用于在 Android 设备上运行 FRPC 的 Magisk 模块。** **如果您的终端设备使用WEB服务或者其他需要远程访问的服务,那么该模块将是您不错的选择。** [Magisk-FRPC:https://github.com/Yang2635/Magisk-FRPC/releases](https://github.com/Yang2635/Magisk-FRPC/releases) * **模块支持**`arm`、`arm64`、`amd64`、`x86`架构。安装时自动判断设备指令架构并应用。 * **使用模块携带的 Busybox 程序中 crond 命令建立定时任务检测状态。** * **FRPC 配置文件修改后会自动检测并重载配置文件。** * **Magisk 模块页面自动显示模块状态信息。** * **检验文件完整性,防止模块被破坏。(感谢 Riru 模块提供的灵感)。** * **可在 Magisk 模块中开启或关闭来控制 FRPC 程序启动与结束。** * **设备电量低于 20% 且未在充电自动终止 FRPC 程序,请保持设备电量充足!** * **在模块目录创建 **`screen` 文件则表示息屏检测,反之不检测。 **模块安装完成后,请到 **`Android/frpc` 目录下浏览并编辑 frpc.ini 配置文件文件。然后重启设备,设备运行后,会在你的设备上运行 FRPC 守护程序。 **模块仅在设备 Android/frpc 目录释放额外工作需要的文件(不含 frpc 日志自定义其它路径设置),若模块卸载时未执行 **`uninstall.sh` 脚本,请手动清除 Android/frpc 目录内文件。 最后修改:2024 年 01 月 08 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏
此处评论已关闭