microsoft / vscode-remote-release

Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
https://aka.ms/vscode-remote
Other
3.68k stars 295 forks source link

[Remote-SSH Bug]: Connection issue with remote machine no internet access #10434

Closed syhzcx closed 2 weeks ago

syhzcx commented 3 weeks ago

Is there an existing issue for this bug?

Required Troubleshooting Steps

Connect Locally

It connects successfully

->

The server has no network access, so I can only upload .vscode-server locally. After I complete the relevant configuration, I can open the file on the server correctly, but when I try to open the folder, it reports the following error:Neither curl nor wget is installed - can't download the Server.

Due to server limitations, I can't copy the log information. So I can only manually provide some information that I think may be important (maybe there will be spelling or grammatical errors), if you need more information, you can tell me.

Thank you very much!

Expected Behavior

Can you tell me how to fix this problem? I hope to be able to use this awesome feature. Thank you!

Steps To Reproduce

No response

Remote-SSH Log

Remote-SSH Log

``` >Acquiring lock on /root/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/vscode-remote-lock.root.8b3775030ed1a69b13e4f4c628c612102e30a681 >Founding existing installation at /root/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681... >Checking /root/.vscode-server/.8b3775030ed1a69b13e4f4c628c612102e30a681.log and /root/.vscode-server/.8b3775030ed1a69b13e4f4c628c612102e30a681.pid for a running server >Looking for server with pid: 2118047 >Found running server.. > >* >* Visual Studio Code Server >* >* By using the software, you agree to >* ... >* ... >* .... >* > > Neither wget nor curl is installed >ad16689aaa4c: start >exitCode==26== >listeningOn==35173== >osReleaseId==ubuntu== >arch==x86_64== >vscodeArch==x64== >bitness==64== >tmpDir==/tmp== >platform==linux== >unpackResult==== >didLoalDownload==0== >downloadTime==== >installTime==== >ad16689aaa4c: end [14:26:10.083] Received install output >exitCode==26== >listeningOn==35173== >osReleaseId==ubuntu== >arch==x86_64== >vscodeArch==x64== >bitness==64== >tmpDir==/tmp== >platform==linux== >unpackResult==== >didLoalDownload==0== >downloadTime==== >installTime==== >extInstallTime==== >serverStartTime==== [14:26:10.084] Neither curl nor wget is installed - can't download the Server [14:26:10.088] Resolver error: Error: Downloading VS Code Server failed - please install either curl or wget on the remote at ... at ... at ... at ... at ... at ... at ... at ... [14:26:10.101] --- [14:26:10.101] "install" terminal command done [14:26:10.101] Install terminal quit with output ```

Anything else?

No response

nzomi commented 2 weeks ago

I keep encountering the same issues whenever I try to update to the latest version of VS Code.

joshspicer commented 2 weeks ago

You should be able to provide logs by running this in your local client (after the connection fails):

Image

If you're having trouble sharing the log, could you share which settings you have changed from default in your environment (the settings prefixed by remote.SSH that are enabled in your settings.json?)

For example, this setting will allow fallback behavior if your remote host cannot retrieve the server via wget/curl:

Image

I can't tell from the logs if this or another setting is disabled, or if you're hitting some error in this flow (perhaps you're hitting something like https://github.com/microsoft/vscode-remote-release/issues/10344, for example).

@nzomi - please provide your logs as well

joshspicer commented 2 weeks ago

so I can only upload .vscode-server locally

Can you explain your workflow here? Are you manually scping this directory onto your remote machine before connecting?

syhzcx commented 2 weeks ago

This is part or the logs.

``` Log Level: 2 SSH Resolver called for "ssh-remote+ip", at attempt1 "remote.SSH.useLocalServer": false "remote.SSH.useExecServer": false "remote.SSH.showLoginTerminal": false "remote.SSH.remotePlatform": {"ip":"linux"} "remote.SSH.path":undefined "remote.SSH.configFile": undefined "remote.SSH.useFlock": true "remote.SSH.lockfileInTmp": false "remote.SSH.localServerDownload": auto "remote.SSH.remoteServerListenOnSocket":false "remote.SSH.showLoginTerminal": false "remote.SSH.defaultExtensions":[] "remote.SSH.loglevel": 2 "remote.SSH.enableDynamicForwarding": true "remote.SSH.enableRemoteCommand": false "remote.SSH.serverPickPortsFromRange":{} "remote.SSH.serverInstallPath":{"ip": "path"} SSH Resolver called for host: "ip" Setting up SSH remote "ip" Using commit id "8b3775030ed1a69b13e4f4c628c612102e30a681" and quality "stable" for server Install and start server if needed ... ... ```

I have solved this problem. The problem seems to be caused by the fact that my server does not have curl and wget. After I installed curl and wget, I was able to open the folder successfully.

Before, I subconsciously thought that the server could not access the external network, so curl and wget could not be used even if they were available, so I had not installed them. Now it seems that,with vscode.server already installed on the server side, will it still request to use curl or wget to download, even though curl or wget doesn't actually work?

I am a novice in this area and I don’t know if this idea is correct.

Thank you very much for your reply!

@joshspicer

syhzcx commented 2 weeks ago

so I can only upload .vscode-server locally

Can you explain your workflow here? Are you manually scping this directory onto your remote machine before connecting?

In fact, my client and server cannot access the external network. So I downloaded the vscode installation package and related extensions and installed them on the client. Then I downloaded the corresponding version of .vscode-server and uploaded it to the corresponding folder on the server /root/.vscode-server/bin/{commit_id}

joshspicer commented 2 weeks ago

Thanks for sharing your workaround here and I am glad you were able to get unblocked! We don't officially support the case where both the remote and local machines do not have internet access. We have https://github.com/microsoft/vscode-remote-release/issues/9454 tracking that. Your solution sounds great for your scenario.

Now it seems that,with vscode.server already installed on the server side, will it still request to use curl or wget to download, even though curl or wget doesn't actually work?

The version of the remote VS Code Server will need to continue to match your local client version, but if you aren't updating too often I think you'll have a fairly stable experience as the installation script will short circuit if a valid server is already found. You may also want to play with the remote.SSH.localServerDownload setting