FRP 与 TiDE 一起功能无法使用

【概述】 FRP 与 TiDE 一起功能无法使用

【背景】 我使用 frp 实现内网穿透,链路如下:家中台式机<–frp–>腾讯云服务器<–>外网,注意::warning:SSH 端口非默认 22 端口。

【现象】 使用 TiDE 连接远程服务器卡死,观察到 SSH 连接不断重试。

【问题】 正常使用 vscode 的 Remote Code 功能以前远程开发是没问题的,可是 TiDE 插件无法正常使用,怀疑 TIDE 插件是否内部需要占用某些端口?因为无法访问到某些 port,超过阈值时间致使 SSH 连路断开重试?
因为腾讯云服务器出于安全考虑,端口我仅开放了一个用于 SSH 连接。

TiDE 直接部署在云服务器上,因为内存较小,之前编译 TiDB 会 OOM ,所以安装了无意义。

希望能得到 TIDE 开发者的解惑,谢谢!

1赞

你好,这种链路没有测试过哈,晚点我试试。不过可以稍微再详细地描述一下使用场景吗?TiDE 现在是跑在腾讯的云服务器上对吧,然后你是在家里还是外网的机器上通过 VSCode Remote 使用 TiDE 呢?TiDE 连接远程服务器,是指连接腾讯云服务器还是连接在其它机器上部署的一套 TiDB 集群呢?具体是什么样的操作触发了这个 SSH 连接?谢谢~

你好,感谢回复

详细描述:

  1. 我的 TiDE 跑在家里台式机上;
  2. 我是在外网机器上通过 VSCode Remote 使用 TIDE;
  3. TiDE 连接远程服务器,指的是连接腾讯服务器的“IP地址”+“某端口”,该端口配置为 FRP 转发,转发给家里的台式机。本质上云服务器只是消息转发,真正运行 TiDE 和 TiDB 的其实是家里的台式机中的虚拟机(VMware)。
  4. 这个 SSH 连接也是我奇怪的,我什么都没做,台式机上安装完 TiDE 就不断触发 SSH 重试。

frp 什么版本的。
是可以链接上,但是偶尔中断重连还是根本就连不上。
从我个人的使用经验来看,frp 可用,但非常的不稳定,基本十几分钟就会出现重连。目前我也没有排查是 wifi 网络的问题还是什么其他的问题。
建议您这面直接做一个家里机器的 3386 端口的转发,使用 winsw 做一个 windows 的服务,然后远程登录到家中的电脑进行链接。

参考这个做一下配置
[common]
server_addr = XXXXXXXX
server_port = XXXXXX
token=XXXXXXX

[win-remote]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = XXXXXX

image
下载一个 winsw 吧,然后把 frp 做成服务。

目前我也是使用腾讯云做跳板机,使用 frp 远程虚拟机和我的物理 windows 机器。

我 FRP 的行为是刚连上时 terminal 还能用
操作几下 TiDE 就重连,然后 terminal 卡死

frp 版本如下

哦哦,这个 winsw 很是可以:thinking:,谢谢
不过我还是想知道 TiDE 为什么会有这样的行为呢

一样的一样的。
我用 frp 做内网穿透也是这个问题。
基本上十分钟一断。不过我做了一个服务,断了以后自动起来。
这个应该不是 tide 的行为,是 frp 的问题。

我觉得不是,因为我之前使用 vscode 自身的 remote SSH 功能
远程连接写一些东西的时候,经常都小时级别的使用,没有出现过中断的问题

实测了下没配 winsw ,仅配 frp 转发 3389,mac RDP 远程登录 window,windows vscode 连接本机 VM 虚拟机
问题算是暂时解决了,有时间我研究下:face_with_monocle:配上 winsw 和 frp 直接转发能不能行得通(不实用 RDP远程界面)
到时反馈在此贴中 !!!

衍生出两个问题:

  1. 是不是新 merge 的 5.0.1 TiDB 源码有些问题,参照 README 直接 pull 下来, TiDE 启动总是不过
    TiDB 报错:runtime error: invalid memory address or nil pointer dereference…
    其他组件都没问题(TiKV PD 等),我最后把 GitHub README 里面的 pull TiDB 操作对应文件夹换成 5.0.0 版本源码就能起来了。
  2. 远程 RDP 稍微有点卡,这个应该和带宽有关,您日常工作用这种方式不影响吗?
    或者方便提供下您家里的网络带宽吗,我参考下?

谢谢大家的帮助!:pray:

1赞

Hi,jansu-dev

“新 merge 的 5.0.1 TiDB 源码” 指的是 v5.0.1 tag 的代码吗?

我在我本地 git pull 了 tidb 的代码,并切换到了 v5.0.1 tag,顺利地跑起来了,没有遇到你上面这个报错,不过我是在 mac 上跑的。

“TiDB 报错:runtime error: invalid memory address or nil pointer dereference…” 如果可以复现的话,能不能把 tidb.log 发给我们看看,谢谢!

  1. 这个 v5.0.1 我描述的有点问题,应该 pull 的是 master 的代码,受下面启动日志影响以为用的也是v5.0.10
  2. 我重复了昨天的操作,没有复现问题:see_no_evil:,应该复现下再抛问题的,非常抱歉!

DEBUG 功能为什么处于僵死状态呢?

  1. windows 的 VScode ssh 到本地虚机,打开虚拟机里的 TIDE

  2. 在虚拟机中下断点,启动 debug

  3. 打开 VScode DEBUG 界面僵死

  4. 点击运行调试,让我选拓展,,是需要在 windows 的 vscode 侧装 dlv 吗?
    我搜了下没搜到 dlv 拓展。

试一下 “Go for Visual Studio Code” 呢,dlv 包含在这个 extension 里。