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

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

相关推荐
咖啡星人k12 小时前
MonkeyCode 网络架构:WebSocket、SSE与实时协作的技术选型
网络·websocket·架构·monkeycode
稷下元歌13 小时前
七天学会plc 加机器视觉完整笔记:S7-1200 数据类型、存储区与寻址方式(I/Q/M/DB 详解)。
网络·数据库·笔记
liulilittle14 小时前
bpftrace 跟踪 tcp_write_xmit (内核TCP写出提交)
网络·网络协议·tcp/ip
星光不负赶路人!14 小时前
【问题解决】xftp工具无法连接Windows问题解决
网络
liulilittle14 小时前
TCP KCC v1.0(卡尔曼拥塞控制)
linux·服务器·网络·tcp/ip·计算机网络·tcp·通信
Fnetlink114 小时前
SD-WAN前三供应商推荐
网络·sase
Bobolink_15 小时前
面向欧美用户实时直播场景的网络时延优化实践
网络·网络优化·跨境网络·跨境直播·直播网络
IpdataCloud15 小时前
遭遇DDoS攻击后如何快速分析攻击源?用IP离线库+威胁情报定位异常IP
网络·tcp/ip·游戏·智能路由器·ddos
机汇五金_15 小时前
影响交换机箱体使用寿命的几个关键因素
运维·服务器·网络·python
zhangjw3415 小时前
第18篇:Java网络编程零基础详解,IP、端口、TCP、UDP、Socket通信、实战文件传输
java·网络·tcp/ip