FRP内网穿透教程「建议收藏」

FRP内网穿透教程「建议收藏」FRP内网穿透介绍frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。为什么使用frp通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:客户端服务端通信支持TCP、KCP以及Websocket等多种协议。采用TCP连接流式复用,在单个连接间承载更多请求,节省连接建立时间。代理组间的负

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

FRP内网穿透

介绍

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

为什么使用frp

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

FRP官网

Github仓库

安装包下载地址

image-20220208152645155

  • 我的服务器是centos7系统(腾讯云主机),拥有公网ip
  • 需要穿透网络的是win10系统电脑

根据所使用的系统来选择安装包,我这里服务器端选择了Linux_amd64安装包、客户端选择了windows_amd64安装包

安装

  • 服务端的相关配置为frps**
  • 客户端的相关配置为frpc**

服务端

  1. 解压frp压缩包

image-20220208164441844

  1. 进入目录修改服务端配置

image-20220208164611263

配置文件内容

vim frps.ini
[common]
bind_addr = 0.0.0.0 #服务端连接客户端的ip地址
bind_port = 7100 #服务端连接客户端的端口
bind_udp_port = 7101 #UDP绑定端口
kcp_bind_port = 7102 #KCP绑定端口
dashboard_addr = 0.0.0.0 #服务端仪表盘面板的ip地址
dashboard_port = 7500 #服务端仪表盘面板的端口
dashboard_user = admin #仪表盘页面登录的用户名
dashboard_pwd = 123456 #仪表盘页面登录的密码
enable_prometheus = true #开启普罗米修斯
log_file = ./frps.log #设置日志文件地址
log_level = info  #设置日志记录级别
token = 1327398885 #服务端连接客户端的口令

启动命令

# 前台启动命令
./frps -c frps.ini
# 后台启动命令
nohup ./frps -c frps.ini >/dev/null 2>&1 &

其中,>为输出重定向符号,>/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。

  1. /dev/null

这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

  1. 2>&1

这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

客户端

我这里使用win10系统电脑,将安装包解压

image-20220208165636059

配置文件内容

[common]
server_addr = 192.168.1.1 # 修改为服务器地址
server_port = 7100 # 服务器绑定端口
token = 1327398885 # 访问token
admin_addr = 192.168.1.1 # 客户端Web地址
admin_port = 7500 # Web访问端口
admin_user = admin # Web访问账户
admin_pwd = 123456 # Web访问密码

[company_res]
type = tcp
local_ip = 192.168.1.243
local_port = 8088
remote_port = 7200

启动命令

frpc -c frpc.ini

Ctrl+C停止服务

启动成功日志:

image-20220208170249102

运行效果

我这里代理了我本地的一个nginx文件服务

image-20220208170345886

访问公网ip,正常显示

参考

安装参考

配置参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194273.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月9日 上午8:22
下一篇 2025年11月9日 上午9:01


相关推荐

  • 寄存器的英文全称

    寄存器的英文全称AH amp AL AX accumulator 累加寄存器 BH amp BL BX base 基址寄存器 CH amp CL CX count 计数寄存器 DH amp DL DX data 数据寄存器 SP StackPointer 堆栈指针寄存器 BP BasePointer 基址指针寄存器 SI SourceIndex 源变址寄存器 DI DestinationI 目的变址

    2026年3月20日
    1
  • PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程

    PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程摘要 Qt 是常用的用户界面设计工具 而在 Python 中则使用 PyQt 这一工具包 它是 Python 编程语言和 Qt 库的成功融合 这篇博文通过图文详细介绍在 PyCharm 中如何完整优雅地安装配置 PyQt5 的所有工具包 主要内容包括 PyQt5 PyQt5 tools 的依赖包安装和 QtDesigner PyUIC PyRcc 三个工具的设置 最后简单演示了 PyQt5 的调用方式及三个工具的使用方法 其目录如下 前言 工具包安装 设计工具配置 使用演示

    2026年3月26日
    3
  • MPP数据库简介

    MPP数据库简介MPP 架构是将任务并行的分散到多个服务器和节点上 在每个节点上计算完成后 将各自部分的结果汇总在一起得到最终的结果 采用 MPP 架构的数据库称为 MPP 数据库

    2026年3月18日
    2
  • php安装

    php安装

    2021年6月17日
    91
  • list列表下嵌套多个list_datalist和select的区别

    list列表下嵌套多个list_datalist和select的区别 aspxviewplaincopytoclipboardprint?%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”DataListNesting.aspx.cs” Inherits=”DataListNesting” %>  >  html xmlns=”http://www.w3.org/1

    2022年10月13日
    6
  • 线程池介绍及创建线程池的4种方式是什么_程序可以创建几个线程池

    线程池介绍及创建线程池的4种方式是什么_程序可以创建几个线程池1.什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源…

    2022年10月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号