一、问题的背景

今天在远程登录服务器的时候,遇到了一个很奇怪的问题。构造这个需求,是因为不想通过VPN去访问数据,将目标服务器放在另一个可以访问的公网网段上,通过访问这个公网和NAT技术实现访问VPN数据的目的。

二、模型示意图

现如今出现了使用vscode无法访问的情况,描述如下:
电脑通过内网访问另一个在公网下的内网。SSH的连接可以直接实现数据的访问,但是使用vscode就会出现问题。
image
如果将发送请求的内网换成个人的热点,就可以实现访问。
image

三、问题分析与解决(未解决)

这个的原因在于vscode和网络共存的问题,网络设置貌似不允许vscode进行配置,但是具体什么原因还不清楚。并且如果通过向日葵等远程连接方法,访问目标网段下的其他主机,依然无法访问到目标主机。发现这个问题是因为按照其他的解决方法进行了不同的尝试,最后通过另一个可以访问的账号,让我意识到可能是网络的问题,在切换成自己的WIFI时这个问题就消失了。
解决的过程中,我进行了以下的尝试:

  • 清除服务器上的vscode-server,清楚本机的ssh-client配置,使用了1.75的版本(解决了版本冲突的问题)。
  • 重新安装vscode。

最后还是由于其他账号不能登录,让我马上意识到是vscode无法解析网络。因为ssh可以正常访问,说明网络没有问题,但是vscode却无法这样配置。

四、解决方案(已解决)

通过查阅解决方案,在知乎看到了这样的一个解决方案十分有效。

在使用的过程中需要注意的一点是取消插件的自动更新,以及文件命名的方式。

五、原因分析

vscode无法使用是由于客户端-服务器之间的版本不匹配,有服务的版本在服务器上就可以实现访问。而新的ssh-remote插件将其安装到了tmp文件下,这将导致安装时没有权限。尝试了一下用root账号,还是无法创建文件,可以使用chomd+777的方式,!但是这种方式应该是一种比较危险的操作,不建议使用??(发现修改也没啥吧)。因此使用稳定的ssh-remote能够比较好的处理这个问题。
此外我在三台服务器上做了测试,有两台服务器在登录成功后,能够正常安装,有一台不行,个人觉得还是由于tmp文件权限的问题。

posted on 2024-06-26 19:22  蔚蓝色の天空  阅读(3)  评论(0编辑  收藏  举报