一次内网开发环境访问方式的改进实践:使用 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 非常适合内外网桥接场景

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

相关推荐
Hill_HUIL34 分钟前
学习日志23-路由高级特性(静态路由)
网络·学习
cyhty1 小时前
静态路由实验报告
网络·网络安全
Chen放放1 小时前
【华三】VXLAN-三层集中式网关配置
运维·网络
花火Neko`1 小时前
openwrt防火墙安全配置
网络·安全·智能路由器·istoreos
Wen1 小时前
小米路由器4A千兆刷OPENWRT(简单快速)
网络·经验分享·智能路由器
碎梦归途1 小时前
思科网络设备配置命令大全,涵盖从交换机到路由器的核心配置命令
linux·运维·服务器·网络·网络协议·路由器·交换机
七维大脑虚拟机1 小时前
飞牛NAS公网IPv6+DDNS远程访问零延迟教程
运维·服务器·网络
珠海西格电力科技2 小时前
微电网系统架构设计:并网/孤岛双模式运行与控制策略
网络·人工智能·物联网·系统架构·云计算·智慧城市
浩浩测试一下2 小时前
从Web 到 域控 <----> 企业级内网渗透思路
网络
weixin_437044643 小时前
Netbox批量添加设备——堆叠设备
linux·网络·python