当前位置: 首页 > article >正文

巧用frp与nginx反向代理,实现安全远程访问内网ESXi管理界面

1. 为什么需要远程访问ESXi管理界面对于运维人员来说能够随时随地访问ESXi管理界面是刚需。想象一下当你正在出差或者在家休息时突然需要检查虚拟机状态或者处理紧急故障如果只能跑到机房操作那简直是噩梦。我遇到过好几次半夜打车去机房处理问题的尴尬情况后来痛定思痛决定搭建一个安全的远程访问方案。ESXi作为企业级虚拟化平台默认只提供本地管理界面。直接暴露在公网会带来严重安全隐患比如密码爆破攻击、中间人攻击等。我曾经试过简单配置端口映射结果第二天就发现大量暴力破解尝试。所以我们需要一种既安全又稳定的远程访问方案。frp内网穿透结合nginx反向代理的方案完美解决了这个痛点。frp负责打通内外网通道nginx则提供SSL加密、访问控制和WebSocket支持。这个组合我已经在生产环境稳定运行两年多实测下来非常可靠。2. 环境准备与工具选型2.1 硬件与网络环境先说说我的实验环境这样大家更容易对照着操作内网环境ESXi主机192.168.1.5你的可能是其他地址代理服务器192.168.1.4我用的是Ubuntu 20.04公网环境云服务器阿里云ECS1核2G够用域名建议用备案过的我用的是esxi.example.com这里有个坑要注意ESXi默认使用自签名证书直接访问会报安全警告。我刚开始就是被这个坑了好久后来发现通过nginx中转可以完美规避。2.2 软件版本选择工具版本很关键我踩过版本不兼容的坑frp推荐用snowdreamtech/frp的0.31.2版本nginx建议1.18.0以上必须支持WebSocket证书Lets Encrypt免费证书就够用特别提醒frp的客户端和服务端版本要一致我有次因为版本不一致导致连接老是断开排查了半天才发现是这个原因。3. 本地环境配置详解3.1 nginx反向代理配置本地nginx的作用是把ESXi的HTTPS流量转换成HTTP这样frp传输时就不会受证书问题影响。这是我的配置文件server { listen 9651; server_name 127.0.0.1; location / { proxy_pass https://192.168.1.5; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; # 关键的三行配置 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }配置好后用curl http://192.168.1.4:9651测试下应该能看到ESXi登录页面。如果报502错误很可能是proxy_pass地址写错了。3.2 frpc客户端配置frpc的配置相对简单但有几个参数要注意[common] server_addr 你的云服务器IP server_port 7000 token 你的认证令牌 [yionr-esxi] type http local_ip 127.0.0.1 local_port 9651 custom_domains esxi.example.com这里有个小技巧token建议设置复杂些我见过有人用简单token被爆破的案例。启动frpc后检查日志确保连接成功。4. 云端服务器配置4.1 frps服务端配置frps的配置要与frpc对应[common] bind_port 7000 token 和frpc相同的令牌 vhost_http_port 520建议开启dashboard方便监控dashboard_port 7500 dashboard_user admin dashboard_pwd 复杂密码启动后记得开防火墙端口7000和7500如果开dashboard。4.2 nginx SSL配置这部分是关键中的关键直接影响到安全性server { listen 80; server_name esxi.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name esxi.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; # SSL优化配置 ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:520; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 同样需要WebSocket支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }证书申请推荐用acme.sh脚本自动续期很方便curl https://get.acme.sh | sh acme.sh --issue -d esxi.example.com --nginx5. 常见问题排查指南5.1 控制台无法连接这个问题我遇到过好几次根本原因是WebSocket没配置好。检查两点本地和云端nginx都要有这三行proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade;浏览器控制台看有没有WebSocket错误5.2 登录页面提示刷新浏览器这通常是因为没强制HTTPS访问。确保80端口配置了跳转到443直接访问https://域名 而不是http5.3 502 Bad Gateway按这个顺序排查检查frpc是否正常运行查看本地nginx日志确认proxy_pass地址正确测试本地能否通过http://127.0.0.1:9651访问6. 安全加固建议这套方案虽然安全但还可以进一步加固IP白名单nginx配置只允许特定IP访问allow 你的办公IP; deny all;双因素认证在ESXi前再加个认证层auth_basic Restricted; auth_basic_user_file /etc/nginx/.htpasswd;访问频率限制limit_req_zone $binary_remote_addr zoneesxi:10m rate5r/s;定期更新保持frp和nginx为最新版这套方案我已经帮三个客户部署过最久的稳定运行18个月没出过问题。关键是要做好监控我习惯用Prometheus监控frp连接状态一旦异常立即告警。

相关文章:

巧用frp与nginx反向代理,实现安全远程访问内网ESXi管理界面

1. 为什么需要远程访问ESXi管理界面 对于运维人员来说,能够随时随地访问ESXi管理界面是刚需。想象一下,当你正在出差或者在家休息时,突然需要检查虚拟机状态或者处理紧急故障,如果只能跑到机房操作,那简直是噩梦。我遇…...

到极限了吗?优化算法APP9.0,再加入228个车间调度案例!

我又来更新啦!这次在优化算法APP8.0的基础上再次大更新!加入了4大经典车间调度数据集,共228个实例开箱即用。这个案例的加入非常适合写论文哦!当你以为我黔驴技穷的时候,不好意思,我的表演才刚刚开始~ 哈哈…...

如何3分钟解放你的B站缓存视频?m4s-converter终极转换指南

如何3分钟解放你的B站缓存视频?m4s-converter终极转换指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是不是也遇到过这样的烦…...

5分钟快速上手:Windows触控板优化终极指南

5分钟快速上手:Windows触控板优化终极指南 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnWindows …...

如何用EPPlus 8快速实现.NET Excel自动化处理

如何用EPPlus 8快速实现.NET Excel自动化处理 【免费下载链接】EPPlus EPPlus-Excel spreadsheets for .NET 项目地址: https://gitcode.com/gh_mirrors/epp/EPPlus 如果你正在寻找一个强大且易用的.NET Excel处理库,那么EPPlus 8绝对值得你深入了解。这个功…...

现代化WPF可视化设计引擎:从XAML代码到拖拽式开发的效率革命

现代化WPF可视化设计引擎:从XAML代码到拖拽式开发的效率革命 【免费下载链接】WpfDesigner The WPF Designer from SharpDevelop 项目地址: https://gitcode.com/gh_mirrors/wp/WpfDesigner 在WPF应用程序开发中,手动编写XAML代码进行界面布局是每…...

图卷积神经网络自编码器天线优化设计方法【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅如需沟通交流,点击《获取方式》 (1)天线结构图表示与变分图自编码器代理模型&#xff1a…...

自建AI编程助手服务:Recodex部署与Codex API代理实战

1. 项目概述与核心价值最近在折腾AI编程助手,发现OpenAI的Codex模型确实好用,但直接访问官方服务总是不太稳定,速度也时快时慢,对于需要深度集成的开发工作来说,体验不够丝滑。于是,我花了不少时间研究自建…...

B站视频下载终极教程:3步获取无水印高清视频

B站视频下载终极教程:3步获取无水印高清视频 【免费下载链接】BiliDownload B站视频下载工具 项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload 想要下载B站视频却苦于找不到合适的工具?BiliDownload是你的最佳选择!这款基…...

金融APP加固公司指南:从苹果审核到防破解的实战经验分享

金融类APP(银行、证券、支付)是所有移动应用中安全防护等级最高、合规要求最严、被攻击价值最大的一类。代码一旦被逆向,交易协议、用户数据、核心算法将直接暴露,带来的不仅是经济损失,更是监管处罚和品牌信誉崩塌。因…...

微信AI机器人搭建全攻略:基于WeChatFerry与ChatGPT的自动化消息回复

1. 项目概述与核心思路 最近在折腾一个挺有意思的玩意儿:一个能帮你自动回复微信消息的AI机器人。这项目叫 wechat-bot ,虽然原作者已经暂停维护,但它的核心思路和实现方式,对于想自己动手搞点自动化工具的朋友来说&#xff0c…...

3步实战:用DistroAV插件解决OBS多机位网络传输难题

3步实战:用DistroAV插件解决OBS多机位网络传输难题 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi 还在为OBS Studio的多机位同步而烦恼?想要实现…...

Honey Select 2终极汉化补丁:一站式解决语言障碍与功能扩展难题

Honey Select 2终极汉化补丁:一站式解决语言障碍与功能扩展难题 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 想象一下,你刚刚下载了备…...

如何轻松实现Windows风扇智能控制:5个关键技巧打造完美散热系统

如何轻松实现Windows风扇智能控制:5个关键技巧打造完美散热系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tr…...

DevOps与MCP协议:构建AI增强型智能运维工作台

1. 项目概述:DevOps与MCP的交汇点最近在GitHub上看到一个挺有意思的项目,叫rohitg00/awesome-devops-mcp-servers。如果你是做DevOps或者对AI辅助编程感兴趣,这个仓库绝对值得你花时间研究。简单来说,这是一个精心整理的列表&…...

Sunshine游戏串流服务器完整指南:三步搭建个人游戏云

Sunshine游戏串流服务器完整指南:三步搭建个人游戏云 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款强大的开源自托管游戏串流服务器,专为M…...

终极Dell G15温度控制解决方案:开源软件TCC-G15完整指南

终极Dell G15温度控制解决方案:开源软件TCC-G15完整指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 还在为你的Dell G15笔记本高温发烫而烦恼吗…...

保姆级教程:用Vector CANoe搞定LIN诊断刷写自动化测试(附CAPL脚本思路)

从零构建LIN诊断刷写自动化测试:Vector CANoe实战指南 当汽车电子系统开始全面拥抱OTA升级浪潮时,LIN总线上的控制器也必须具备可靠的远程刷写能力。作为测试工程师,我们面临的挑战是如何在资源有限的LIN网络上,构建一个既能模拟…...

群晖相册AI识别深度解析:无GPU设备开启人脸识别的技术方案

群晖相册AI识别深度解析:无GPU设备开启人脸识别的技术方案 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch Synology Photos Face Patch 是…...

Vibe Stack 全栈开发实战:30分钟构建SaaS应用的技术解析

1. 从零到一:我如何用 Vibe Stack 在 30 分钟内搭建一个可用的 SaaS 应用 作为一名在 Web 开发领域摸爬滚打了十多年的老程序员,我见过太多“五分钟快速启动”的噱头,最后往往需要花上五个小时去解决各种环境配置和依赖冲突。所以&#xff0…...

告别手动计算!用Python+GDAL复现CASA模型NPP估算,效率提升不止一点点

告别手动计算!用PythonGDAL复现CASA模型NPP估算,效率提升不止一点点 遥感生态研究中,净初级生产力(NPP)的估算一直是评估植被生长状况和碳循环的重要指标。传统基于IDLENVI的CASA模型实现方案,虽然成熟稳定…...

从零到一:手把手教你完成Matlab R2020a的下载、安装与激活【避坑指南】

1. 准备工作:下载与系统检查 第一次安装Matlab的朋友们可能会被复杂的流程吓到,但别担心,跟着我的步骤走绝对没问题。我去年给实验室十几台电脑装过R2020a版本,踩过的坑比你们见过的都多。首先咱们得准备好安装包,这里…...

别再手动敲命令了!用Shell的Here Document(EOF)自动化你的SFTP/MySQL登录操作

告别重复输入:用Here Document实现命令行自动化 每次登录SFTP服务器都要手动输入密码?数据库操作总得反复敲命令?运维工程师的日常被这些重复劳动占据了大半时间。Here Document技术正是为解放你的双手而生——这种源自Unix传统的脚本编写技巧…...

League Akari终极指南:英雄联盟玩家的智能游戏助手完整教程

League Akari终极指南:英雄联盟玩家的智能游戏助手完整教程 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟的繁琐操…...

1、Chrome Elements面板:从入门到精通的网页调试实战指南

1. Chrome Elements面板:你的网页调试瑞士军刀 第一次打开Chrome开发者工具时,那个标着"Elements"的标签页看起来就像是一堆杂乱无章的HTML代码。但当我真正开始理解它的功能后,它迅速成为了我每天使用最频繁的开发工具。Elements面…...

如何用WeChatMsg永久备份微信聊天记录?3步完成数据存档与深度分析

如何用WeChatMsg永久备份微信聊天记录?3步完成数据存档与深度分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendi…...

告别虚拟机臃肿:用QEMU用户模式(qemu-user)快速运行跨架构程序的完整指南

告别虚拟机臃肿:用QEMU用户模式(qemu-user)快速运行跨架构程序的完整指南 在开发跨平台应用或研究嵌入式系统时,开发者经常需要处理不同CPU架构的二进制文件。传统解决方案是启动完整的虚拟机,但这会消耗大量系统资源&…...

5分钟掌握ViGEmBus:Windows游戏控制器模拟终极指南

5分钟掌握ViGEmBus:Windows游戏控制器模拟终极指南 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是一款强大的Windows内核级驱动程序&…...

智慧树刷课插件:3分钟实现自动播放,彻底告别手动刷课烦恼!

智慧树刷课插件:3分钟实现自动播放,彻底告别手动刷课烦恼! 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台繁琐的手…...

QML WebEngine与ECharts联袂:打造高性能实时数据可视化桌面应用

1. 为什么选择QMLWebEngineECharts组合? 在开发桌面端实时数据可视化应用时,我们常常面临一个关键选择:是使用原生绘图方案还是Web技术栈?我经过多个工业监控项目的实战验证,发现QMLWebEngineECharts的组合堪称黄金搭…...