一次内网开发环境访问方式的改进实践:使用 FRP 替代远程桌面

一次内网开发环境访问方式的改进实践:使用 FRP 替代远程桌面

一、背景

在公司项目中,经常会遇到这样一种开发环境限制:

项目内网服务器禁止直接访问外网

为了在该环境下进行开发和调试,常见的做法是:

  • 准备一台 可以联网的台式机
  • 通过 向日葵 / ToDesk / Windows 远程桌面 等方式远程控制这台机器
  • 再由该机器访问内网服务器进行开发、调试等操作

二、问题描述

2.1 现有方案的痛点

远程桌面主要有下面几个问题:

  1. 受网络质量影响较大

    网络如有波动,画面就会卡顿、延迟断连,影响开发体验。

  2. 开发环境重复搭建

    需要在"中转的联网机器"上安装 IDE、SDK、编译工具以及各种依赖,维护成本较高。

  3. 图形化并非必需

    实际开发过程中,大多数操作(代码编辑、服务运行、日志查看等)完全可以通过 SSH 完成,并不依赖 GUI,甚至当你需要调试前端代码时也可以通过将该前端端口也映射出来的方式实现。


三、思路分析

仔细想想:

我们主要为的不是"远程控制一台电脑",而是"访问内网服务器"。

由此便可得出一个新路线:

  • 联网台式机可以访问内网服务器
  • 联网台式机可以访问外网
  • 那么它天然可以作为一个 网络转发节点

由此引入 FRP(Fast Reverse Proxy),通过端口映射的方式,将内网服务器的服务暴露到外网。


四、方案设计

4.1 网络结构示意

text 复制代码
本地开发电脑
        |
        | SSH
        v
外网服务器 (frps)
        |
        | 端口转发
        v
联网台式机 (frpc)
        |
        | 内网访问
        v
内网服务器 (192.168.1.144:22)

4.2 端口映射说明

假设环境如下:

  • 内网服务器 SSH 地址:192.168.1.144:22
  • 外网服务器地址:114.113.112.111
  • 映射端口:6666

最终可以通过以下方式访问内网服务器:

bash 复制代码
ssh user@114.113.112.111 -p 6666

等价于:

bash 复制代码
ssh user@192.168.1.144 -p 22

4.3 FRP 客户端配置示例

frpc 运行在 联网台式机 上,配置示例:

ini 复制代码
[ssh_proxy]
type = tcp
local_ip = 192.168.1.144
local_port = 22
remote_port = 6666

frps 部署在外网服务器上,用于接收外部连接并转发流量。


五、结果与效果

5.1 方案对比

方案 稳定性 延迟 维护成本
远程桌面 较差
SSH + FRP 稳定

5.2 实际收益

  • 不再依赖图形化远程桌面
  • SSH 连接稳定性显著提升
  • 中转机器只需保持开机,无需长期占用
  • 不影响现场工作人员正常使用联网台式机

六、总结

  1. 默认方案不一定是最优方案

    远程桌面更适合运维或临时操作,而非高频开发场景。

  2. FRP 非常适合内外网桥接场景

    显著提升开发效率和体验。

相关推荐
云安全干货局2 小时前
服务器被攻击后如何快速恢复?数据备份 + 应急响应手册
网络·网络安全·云服务器·弹性云服务器
猿饵块2 小时前
tcp--抓包--wireshark
网络·测试工具·wireshark
❆VE❆2 小时前
WebSocket与SSE深度对比:技术差异、场景选型及一些疑惑
前端·javascript·网络·websocket·网络协议·sse
科技块儿3 小时前
反羊毛实战复盘:IP查询+设备指纹联动风控方案
网络·网络协议·tcp/ip
掘根3 小时前
【仿Muduo库项目】HTTP模块3——HttpContext子模块
网络·网络协议·http
杰克逊的日记4 小时前
网络问题定位与排查
网络·it
2502_911679144 小时前
重新定义测试边界:N5181A信号发生器,何以成为射频领域的性能标杆?
网络·科技·信号处理
亲爱的非洲野猪4 小时前
Java线程池深度解析:从原理到最佳实践
java·网络·python
以太浮标5 小时前
华为eNSP模拟器综合实验之- VLAN-QinQ技术解析
运维·网络·华为·信息与通信