frp 是一个开源的内网穿透工具,可以使外网设备访问内网防火墙后的设备/服务器。

比如可以买一个 99元/年 的阿里云低配 ECS,然后把自己相对高配的旧电脑放在家里。

家里的旧电脑通过 frp 连上 ECS 之后,外网设备就可以通过 ECS 访问这台旧电脑了。

这种方案适合搭建自己的代码管理系统、CI/CD、个人博客、小型论坛、股票系统等等。

server 端(阿里云ECS)的配置

# #################################
# frps.yaml - frp 服务端配置
# 说明:此文件仅用于阅读和管理
# ################################# # 绑定的服务监听地址(默认仅本地回环),如需公网访问请设置为 0.0.0.0
bindAddr: "0.0.0.0" # frp 服务默认监听 7000 端口(供家里旧电脑使用)
bindPort: 7000 # 可选:使用 KCP 协议加速(UDP)时监听的端口
# kcpBindPort: 7000 # 可选:QUIC 协议监听端口(建议单独配置)
# quicBindPort: 7001 # 可选:UDP 协议端口(供 UDP 转发使用)
# bindUdpPort: 7002 # 设置 token,用于客户端认证
authentication:
method: "token" # 可选:"token"、"oidc"
token: "your_secure_token_here" # 是否启用 TLS 加密
# transport:
# tls:
# enable: true
# certFile: "/path/to/cert.pem"
# keyFile: "/path/to/key.pem" # 仪表盘 dashboard 配置(用于查看连接状态)
webServer:
addr: "0.0.0.0" # 监听地址(本地可设为127.0.0.1,公网需设为0.0.0.0)
port: 7500 # dashboard 监听端口
user: "admin" # 登录用户名(可选)
password: "admin" # 登录密码(可选)
# tlsEnable: false # dashboard 是否启用 HTTPS(默认 false) # 日志相关配置
log:
level: "info" # 日志级别:trace, debug, info, warn, error
to: "./frps.log" # 日志输出文件路径(默认 stdout)
maxDays: 7 # 日志保留天数
disablePrintColor: false # 最大客户端连接数限制
maxPoolCount: 100 # TCP 多路复用(提升性能)
tcpMux:
enable: true
# keepaliveInterval: 60 # 是否允许客户端访问 frps 的配置接口(高危)
# allowPorts: [80, 443, 22] # 控制哪些端口可被客户端映射 # 控制哪些客户端可以连接(基于 ID 认证,可选)
# clients:
# - id: clientA
# token: abc123 # 允许的代理类型
# allowProxyTypes:
# - tcp
# - udp
# - http
# - https
# - stcp
# - xtcp # 自定义 DNS 解析器
# dnsServer: "8.8.8.8" # 自定义端口映射范围限制(防止乱用)
# portRange:
# min: 10000
# max: 20000

client 端(家里旧电脑)的配置

# #################################
# frpc.yaml - frp 客户端配置
# ################################# # 服务器的 ip
serverAddr: "x.x.x.x" # 服务器的端口(与服务端 bindPort 对应)
serverPort: 7000 # 客户端身份认证(与服务端 token 必须一致)
authentication:
method: "token"
token: "your_secure_token_here" # 可选:客户端自己的唯一 ID(用于多客户端场景)
# user: "my-client-id" # 日志相关设置
log:
level: "info" # 可选:trace, debug, info, warn, error
to: "./frpc.log" # 日志输出路径
maxDays: 7 # 日志保留天数
disablePrintColor: false # 是否禁用彩色输出 # TCP 多路复用(默认开启)
tcpMux:
enable: true # 连接 frps 的协议类型(可选:tcp, kcp, quic, websocket, wss)
# transport:
# protocol: "tcp" # #################################
# 定义需要穿透的服务(proxies)
# 支持多个,格式类似数组项
# ################################# proxies:
# 此处开启一个 ssh 服务
- name: "ssh" # 内网服务的名称(可任意)
type: "tcp" # 基于 tcp
localIP: "127.0.0.1" # 从公网访问内网服务的地址,默认为本机的 "127.0.0.1"
localPort: 22 # 从公网访问内网服务的端口,默认为本机的 22 端口(ssh-server)
remotePort: 7001 # 公网通过 "ssh -o Port=7001 root@x.x.x.x" 访问 frp 客户端的 ssh-server,即:frps 服务器的 7001 端口的数据都会被转发给内网的 ssh 服务 # 此处开启一个 http 服务
- name: "web" # 内网服务的名称(可任意)
type: "http" # 基于 tcp
localPort: 8200 # 暴露给公网用户的端口,可以通过 http://x.x.x.x:8200 访问内网的 http 服务器
remotePort: 8200 # 公网映射端口
# customDomains: "www.yourdomain.com" # 自定义域名(如开启,取消前面的注释) # STCP 加密通道(适合内网 P2P)
# - name: "secure-service"
# type: "stcp"
# localPort: 9000
# secretKey: "shared_key" # UDP 穿透示例(如 DNS)
# - name: "dns"
# type: "udp"
# localPort: 53
# remotePort: 1053 # #################################
# 可选:插件、自定义域名、多用户、TLS等高级配置
# ################################# # 支持插件,如 HTTPS → 本地 HTTP 转换
# - name: "https-plugin"
# type: "https"
# plugin:
# name: "https2http"
# localAddr: "127.0.0.1:80"
# crtPath: "/path/to/cert.crt"
# keyPath: "/path/to/cert.key"
# hostHeaderRewrite: "127.0.0.1"

使用 frp 进行内网穿透的更多相关文章

  1. 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公

    当前情况下,经常会有需要到公司电脑进行一些操作,比如连接内网OA,数据库或者提交文档.为了减少外出,将使用frp进行内网穿透的方法进行一个说明. 前提条件 1. 一台拥有公网 IP 的设备(如果没有, ...

  2. 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问

    原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...

  3. frp实现内网穿透

    frp实现内网穿透 目标 通过外网访问内网设备,本文中实现通过手机的移动流量,可以访问到树莓派设备 设备准备 需要被访问的设备(本文中使用Raspberry Pi`).公网IP设备(本文中使用阿里云 ...

  4. frp+nginx内网穿透

    frp+nginx内网穿透 背景:自己有台内网Linux主机,希望被外网访问(ssh.http.https): 准备工作 内网Linux主机-c,可以访问c主机和外网的主机-s(windows/lin ...

  5. 使用frp进行内网穿透,实现ssh远程访问Linux服务器

    搭建一个完整的frp服务链需要: VPS一台(也可以是具有公网IP的实体机) 访问目标设备(就是你最终要访问的设备) 简单的Linux基础(如果基于Linux配置的话) 我这里使用了腾讯云服务器作为服 ...

  6. frp 用于内网穿透的基本配置和使用

    frp 用于内网穿透的基本配置和使用 今天是端午节,先祝端午安康! frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便 ...

  7. 分享下超实用的用skura frp做内网穿透的经验

    操作目的: 使无公网ip的主机能被外网访问,实现ssh对服务器的远程管理 硬件准备: 1.服务端:skura frp主机(skura frp 免费提供,有待创建) 2.客户端:接在无线路由器(内网)上 ...

  8. 使用FRP做内网穿透

    Github地址:https://github.com/fatedier/frp 什么是FRP? frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 h ...

  9. 如何使用 frp 实现内网穿透

    这有一个专注Gopher技术成长的开源项目「go home」 背景 作为一名程序员,家里多多少少会有一些落了灰的电脑,如果把闲置的电脑变成服务器,不仅有良好的配置,还能用来做各种测试,那就再好不过了. ...

  10. 基于frp的内网穿透实例1-通过SSH访问内网机器

    原文地址:https://wuter.cn/1804.html/ 老母鸡终于到了,作为一个能运行linux系统的四核1G硬件,它还是比较小巧的. FRP 全名:Fast Reverse Proxy.F ...

随机推荐

  1. php站点导入大mysql文件(linux系统)

    问题描述:站点数据多,mysql导出后大于1G,使用phpmyadmin,导入一半报错,白白浪费等待时间,使用navicat 导入,执行时间过长提示错误 解决思路:1.拆分mysql文件,分批次导入, ...

  2. Vue3路由进阶实战:深度解析参数传递与导航守卫核心技术

    一.路由参数传递的进阶应用技巧 1.1 路由配置与参数验证 // router/index.js { path: '/user/:userId(\\d+)', // 使用正则表达式限制只匹配数字 na ...

  3. Ubuntu下如何管理多个ssh密钥

    Ubuntu下如何管理多个ssh密钥 前言 ‍ 我一直在逃避这个问题,误以为我能够单纯地用一个 ssh 走天下. 好吧,现实是我不得不管理多个 ssh 做,那就写个博客总结一下吧. 查阅后发现前人已经 ...

  4. IvorySQL 升级指南:从 3.x 到 4.0 的平滑过渡

    日前,IvorySQL 4.0 重磅发布,全面支持 PostgreSQL 17,并且增强了对 Oracle 的兼容性.关于 IvorySQL 4.0 的介绍,各位小伙伴可以通过这篇文章回顾:Ivory ...

  5. 视觉SLAM十四讲——有关相机运动的汇报

    视觉SLAM十四讲--有关相机运动的汇报 大概用了一个月的时间看完slam十四讲,里面很多内容算是填坑了很多以前遇到的不懂的点,并且脑海里也大致有了一个关于SLAM的框架,现在就这篇文章将其中相机运动 ...

  6. ingress配置https报错certificate.lua:259: call(): failed to set DER private key: d2i_PrivateKey_bio() failed, context: ssl_certificate_by_lua*

    困扰我2天的报错问题:certificate.lua:259: call(): failed to set DER private key: d2i_PrivateKey_bio() failed, ...

  7. 正则表达式--java进阶day06

    1.正则表达式 2.正则表达式的规则.使用 3.字符类讲解 如图,单独一个a满足正则表达式的规则,所以返回true 当删去[]后,正则表达式中的规则就会变为必须是abc,否则不满足条件,即使有一个a ...

  8. 流式计算(五)-Flink核心概念

    一手资料,完全来自官网,直接参考英文过来的,并加了一些自己的理解,希望能让看官君了解点什么,足矣. 环境:Flink1.9.1 难度:新手--战士--老兵--大师 目标: 理解Flink的计算模型 认 ...

  9. dotnet 命令启动报错

    Windows 7 或 Windows Server 2008 R2 上安装 .NET Core SDK 2.x 后 dotnet 命令启动报错 可以通过下载以下系统补丁解决 感谢下载 Windows ...

  10. TMS WEB Core的DEMO

    TMS WEB Core的思路就是把你界面设计转换成js.这个打通了,将会使生产效率呈几何级数提高. 说如何让其demo的能跑起来: 1.看图.增加参数(TMSHttpConfig.exe). 2.运 ...