使用 frp 实现内网穿透:让本地服务器安全暴露到公网

使用 frp 实现内网穿透:让本地服务器安全暴露到公网

frp(frp 是 Fast Reverse Proxy 的缩写)是一个轻量、高效的内网穿透工具,可以将内网的 SSH、Web、MySQL 等服务安全地暴露到公网。本文基于一个实际生产环境,介绍 frp 的安装、配置和使用方法,实现:

  • 通过域名访问本地服务器的 Web 服务

  • 通过公网 SSH 端口访问本地服务器的 SSH

  • (可选)通过公网访问 MySQL

整个方案紧凑、安全,只需一台有公网 IP 的云服务器作为 frps 服务端。

网络拓扑图

  • 云服务器 B 拥有公网 IP,运行 frps 和 Nginx

  • 本地服务器 AA 通过 VPN 能访问云服务器 B 的内网 IP,运行 frpc

  • VPN 内用户也可通过云服务器B内网IP:2201直接 SSH 到本地 AA(无需知道 AA 内网 IP)

1. 安装 frp

前往 frp GitHub Releases 下载最新版本(推荐 amd64 或 arm64)。

服务端(云服务器 B)

# 创建目录mkdir-p /opt/frp&&cd/opt/frp# 下载(按你的 CPU 架构选择)wgethttps://github.com/fatedier/frp/releases/download/v0.66.0/frp_0.66.0_linux_amd64.tar.gztarzxvf frp_0.66.0_linux_amd64.tar.gzcdfrp_0.66.0_linux_amd64# 拷贝二进制cpfrps /usr/local/bin/chmod+x /usr/local/bin/frps

客户端(本地服务器 AA)

mkdir-p /opt/frp&&cd/opt/frpwgethttps://github.com/fatedier/frp/releases/download/v0.66.0/frp_0.66.0_linux_amd64.tar.gztarzxvf frp_0.66.0_linux_amd64.tar.gzcpfrp_0.66.0_linux_amd64/frpc /usr/local/bin/chmod+x /usr/local/bin/frpc

建议使用 systemd 服务开机自启(略,可自行搜索 “frp systemd”)。

2. 服务端配置(云服务器 B)

/etc/frp/frps.toml

bindPort = 37001 # frpc 连接 frps 的端口(内网安全) bindAddr = "0.0.0.0" vhostHTTPPort = 31080 # HTTP 穿透虚拟主机端口 # Dashboard(可选,监控用) webServer.addr = "0.0.0.0" webServer.port = 37501 webServer.user = "frp_topka" webServer.password = "xxxx" # 必须开启鉴权 auth.method = "token" auth.token = "xxxx" # 自定义强令牌 log.to = "/var/log/frps.log" log.level = "info" log.maxDays = 7

systemd 服务(服务端)

vim/etc/systemd/system/frps.service
[Unit] Description=FRP Server After=network.target [Service] Type=simple ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

启动

systemctl daemon-reload systemctlenablefrps systemctl start frps systemctl status frps

3. Nginx 配置(云服务器 B,反向代理 frp HTTP 端口)

server { listen 80; server_name *.kong.xxx.cn kong.xxx.cn; # IP 白名单 #allow 1.2.3.4; #allow 5.6.7.0/24; #deny all; location / { proxy_pass http://127.0.0.1:31080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

重启 Nginx 即可。域名已解析到云服务器 B 的公网 IP。

4. 客户端配置(本地服务器 AA)

/etc/frp/frpc.toml

serverAddr = "192.168.1.13" # 云服务器 B 的内网 IP serverPort = 37001 auth.method = "token" auth.token = "xxxx" # 与服务端一致 # SSH 穿透 [[proxies]] name = "ubuntu" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 2201 # 公网访问:公网IP:2201 → 本地SSH # Web 穿透 [[proxies]] name = "admin_workstation" type = "http" localIP = "127.0.0.1" localPort = 80 customDomains = ["kong.xxx.cn"] # MySQL 穿透(可选) [[proxies]] name = "mysql" type = "tcp" localIP = "127.0.0.1" localPort = 3306 remotePort = 13306

systemd 服务(客户端)

vim/etc/systemd/system/frpc.service
[Unit] Description=FRP Client After=network.target [Service] Type=simple ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml Restart=always RestartSec=5 [Install] WantedBy=multi-user.target

启动

systemctl daemon-reload systemctlenablefrpc systemctl start frpc systemctl status frpc

5. 使用方式

  • Web 服务:直接访问http://kong.xxx.cn(或子域名)即可访问本地 AA 的 Web 服务

  • SSH 访问本地 AA

    • 公网:ssh user@云服务器B公网IP -p 2201

    • VPN 内:ssh user@192.168.1.13 -p 2201(无需知道 AA 内网 IP)

  • MySQL:连接云服务器B公网IP:13306

  • 管理面板:访问云服务器B公网IP:37501,用户名frp_topka,密码自行设置

安全建议

  • 令牌(token)设置复杂

  • 防火墙只开放必要端口(80、2201、13306、37501 等)

  • 可配合 Nginx 添加 IP 白名单或基本认证进一步加强安全

  • 定期查看 Dashboard 监控连接状态

这样就完成了安全、稳定的内网穿透方案,整个配置简单高效,适合个人和小型团队使用。祝使用愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1169028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义映射resultMap——通过字段别名解决字段名和属性名的映射关系

实现 EmpMapperEmpMapper.xmlResultMapTest此时empName是没有值的解决: 方式一:为字段起别名,保持和属性名的一致

救命神器!MBA必看!8款AI论文写作软件深度测评与推荐

救命神器!MBA必看!8款AI论文写作软件深度测评与推荐 2026年MBA必备的AI论文写作工具测评 在当前快节奏的学术环境中,MBA学生和研究者面临着越来越多的写作挑战。从选题构思到文献综述,再到数据分析与结论撰写,每一个环…

龙石数据中台 V3.8.3 升级 | API功能升级,支持调度数据处理任务

本次龙石数据中台V3.8.3版本升级的重点聚焦于数据共享、数据集成与数据应用三大核心模块,重点提升数据流转效率、接入能力与协作安全性,助力各组织实现更高效、更可控的数据管理。 一、数据共享|API共享模块 1 新增「数据处理任务」组件 在…

算法题 翻转等价二叉树

951. 翻转等价二叉树 问题描述 我们可以对二叉树的任意节点进行翻转操作:交换该节点的左右子树。 如果可以通过一系列翻转操作使得二叉树 root1 变成 root2,则称这两棵树是翻转等价的。 给定两棵二叉树的根节点 root1 和 root2,如果它们是翻转…

如何在n8n中构建多智能体系统?一份即学即会的四步搭建指南攻略

n8n 是一个基于节点的AI工作流自动化构建器,允许你从简单开始,仅在需要时增加复杂性。我们可以轻松地在n8n中演示如何将多个服务、触发器和顺序步骤连接到一个自动化流程中。我们将构建一个分层多智能体系统,其中一个主智能体协调两个专门的子…

2026文旅AI营销榜单:原圈科技领衔破解增长焦虑

面对文旅行业获客难、体验同质化的困境,AI营销成为破局关键。本文揭晓的2026年AI营销服务商实力榜单中,原圈科技凭借其全链路智能体解决方案和深厚的行业积累,在多个维度下表现突出,被普遍视为企业实现智慧增长、优化ROI的理想合作伙伴。该榜单将助您精准把握AI时代脉搏。引言:…

如何操作双极板材料四探针低阻测试仪?

如何操作双极板材料四探针低阻测试仪?操作双极板材料四探针低阻测试仪的关键在于规范流程和细节把控,我来帮你梳理核心步骤:一、操作前准备 样品处理‌确保双极板材料表面平整、无氧化层或污染物,必要时用酒精或超声波清洗。 测量…

中国人民大学打造AI创意写作新帮手:让机器既聪明又有想象力

创意写作一直是人类独有的艺术天赋,但随着人工智能的快速发展,机器是否也能拥有创造力成为了一个引人深思的话题。最近,中国人民大学联合快手科技的研究团队发表了一项突破性研究,他们开发出了一个名为DPWriter的AI写作系统&#…

双极板材料四探针低阻/接触电阻测试仪

双极板材料四探针低阻/接触电阻测试仪双极板材料四探针低阻/接触电阻测试仪产品概述:全面满足双极板测试需求 一、核心功能与特点 我们的双极板材料四探针低阻/接触电阻测试仪是一款集成了多项先进技术的专业测量设备。其主要功能包括:双模式测量‌&…

企业内部在线学习培训系统

企业内部在线学习培训系统是一套功能齐全的在线学习管理系统,其拥有强大的功能,覆盖从课程制作、学习管理、考核评估到数据分析的全流程,它还作为一个私有化平台,可以在云服务器或者局域网本地服务器上私有化部署。以下是企业内训…

将 Java 代码嵌入 iOS 系统需要特殊的技术方案

将 Java 代码嵌入 iOS 系统需要特殊的技术方案,因为 iOS 原生不支持 Java 运行时环境。以下是几种实现方式及示例:## 1. **J2ObjC(Google 官方工具)**将 Java 代码转换为 Objective-C,然后集成到 iOS 项目中。### 示例…

拒稿退散!宏智树 AI 手把手教你写出期刊录用级论文

作为深耕论文写作科普的教育博主,后台每天都被科研人的投稿焦虑刷屏:“选题太老被拒稿”“文献堆砌逻辑乱”“查重率高改到崩溃”“AI 痕迹明显被打回”…… 一篇期刊论文从构思到见刊,往往要经历数次甚至数十次修改。别慌!今天就…

天天写业务代码,如何破局?

无法与业务耦合的开发工程师,职业发展往往更易触碰到天花板。只有在经历过快速迭代的业务需求锤炼、海量用户规模场景的“拷打”以后,工程师才能向架构师甚至更高的技术岗位进阶。腾讯技术专家,万字长文带你剖析业务开发的本质!长…

游戏外包开发的上线

对于游戏外包开发,“上线”不仅是一个简单的发布动作,它是从开发交付到市场运营的关键转折点。在2026年的市场与技术环境下,游戏外包上线通常涉及以下五个关键阶段:1. 验收与质量交付在正式上线前,你需要确保外包团队交…

迈向可持续、智慧与融合:中国城市轨道交通未来发展路径研究

目录 1. 引言:转型期的机遇与挑战 2. 核心驱动力一:人工智能赋能,迈向深度智能化 3. 核心驱动力二:全生命周期绿色低碳转型 4. 核心驱动力三:融合创新与可持续发展 5. 基石与保障:安全韧性与新质生产力…

网络安全详解大全,助力每一个网安梦想!

网络安全的全面解析 一、网络安全的概念与重要性 网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务…

告别 PPT 创作焦虑!宏智树 AI:一键拿捏开题、答辩、汇报全场景学术演示

作为深耕论文写作科普的教育博主,后台每天都被粉丝的 PPT 难题刷屏:“开题 PPT 改了 N 版,导师仍说逻辑混乱”“答辩 PPT 文字堆砌,评委抓不住核心创新点”“工作汇报 PPT 设计粗糙,展现不出成果价值”。 学术 PPT 的…

1480. 找字典码最小的字符串

1480. 找字典码最小的字符串 问题描述 编写程序,针对输入的 NNN 个不同的字符串,输出其中字典码最小的字符串。 输入 输入第一行给出正整数 NNN;随后 NNN 行,每行给出一个长度小于 80 的非空字符串,其中不会出现换…

【tensorRT从零起步高性能部署】21-TensorRT基础-实现模型的推理过程

1. inference案例:推理全流程详解 void inference(){// ------------------------------ 1. 准备模型并加载 ----------------------------TRTLogger logger;auto engine_data load_file("engine.trtmodel");// 执行推理前,需要创建一个推理…

AD25 —走线时如何添加过孔(加过孔不换层 / 加过孔换层)

走线模式下,可以直接加过孔: 不换层:按2换层:按小键盘上的:*