一、问题的背景
今天在远程登录服务器的时候,遇到了一个很奇怪的问题。构造这个需求,是因为不想通过VPN去访问数据,将目标服务器放在另一个可以访问的公网网段上,通过访问这个公网和NAT技术实现访问VPN数据的目的。
二、模型示意图
现如今出现了使用vscode无法访问的情况,描述如下:
电脑通过内网访问另一个在公网下的内网。SSH的连接可以直接实现数据的访问,但是使用vscode就会出现问题。
如果将发送请求的内网换成个人的热点,就可以实现访问。
三、问题分析与解决(未解决)
这个的原因在于vscode和网络共存的问题,网络设置貌似不允许vscode进行配置,但是具体什么原因还不清楚。并且如果通过向日葵等远程连接方法,访问目标网段下的其他主机,依然无法访问到目标主机。发现这个问题是因为按照其他的解决方法进行了不同的尝试,最后通过另一个可以访问的账号,让我意识到可能是网络的问题,在切换成自己的WIFI时这个问题就消失了。
解决的过程中,我进行了以下的尝试:
- 清除服务器上的vscode-server,清楚本机的ssh-client配置,使用了1.75的版本(解决了版本冲突的问题)。
- 重新安装vscode。
最后还是由于其他账号不能登录,让我马上意识到是vscode无法解析网络。因为ssh可以正常访问,说明网络没有问题,但是vscode却无法这样配置。
四、解决方案(已解决)
通过查阅解决方案,在知乎看到了这样的一个解决方案十分有效。
在使用的过程中需要注意的一点是取消插件的自动更新,以及文件命名的方式。
五、原因分析
vscode无法使用是由于客户端-服务器之间的版本不匹配,有服务的版本在服务器上就可以实现访问。而新的ssh-remote插件将其安装到了tmp文件下,这将导致安装时没有权限。尝试了一下用root账号,还是无法创建文件,可以使用chomd+777的方式,!但是这种方式应该是一种比较危险的操作,不建议使用??(发现修改也没啥吧)。因此使用稳定的ssh-remote能够比较好的处理这个问题。
此外我在三台服务器上做了测试,有两台服务器在登录成功后,能够正常安装,有一台不行,个人觉得还是由于tmp文件权限的问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人