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.58k stars 267 forks source link

Port forwarding doesn't work when connected to an SSH remote with ProxyJump #9312

Open Xiao-Chenguang opened 7 months ago

Xiao-Chenguang commented 7 months ago

Type: Bug

  1. ssh to a remote server
  2. run tensorboard --logdir ./
  3. open forwarded port 6006, but browser can't open the page.

Extension version: 0.108.2023112915 VS Code version: Code - Insiders 1.86.0-insider (Universal) (37fe2d06d65db4b50303c5f5e8ca589a50f2287a, 2023-12-15T05:38:07.060Z) OS version: Darwin arm64 22.4.0 Modes: Remote OS version: Linux x64 4.18.0-348.2.1.el8_5.x86_64

System Info |Item|Value| |---|---| |CPUs|Apple M1 (8 x 24)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled
webgpu: enabled| |Load (avg)|4, 4, 3| |Memory (System)|8.00GB (0.07GB free)| |Process Argv|--crash-reporter-id d0b1eeef-3290-442c-9807-853f6985f8e4| |Screen Reader|no| |VM|0%| |Item|Value| |---|---| |Remote|SSH: Bnode-1| |OS|Linux x64 4.18.0-348.2.1.el8_5.x86_64| |CPUs|Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz (144 x 2400)| |Memory (System)|503.53GB (431.49GB free)| |VM|0%|
A/B Experiments ``` vsliv695:30137379 vsins829:30139715 vsliv368:30146709 vsreu685:30147344 python383cf:30185419 vspor879:30202332 vspor708:30202333 vspor363:30204092 vslsvsres303:30308271 pythontb:30258533 pythonptprofiler:30281269 vshan820:30294714 vscod805:30301674 bridge0708:30335490 bridge0723:30353136 vsaa593cf:30376535 pythonvs932:30404738 py29gd2263:30784851 vsclangdf:30492506 c4g48928:30535728 dsvsc012cf:30540253 showlangstatbar:30737417 fixshowwlkth:30771523 showindicator:30805243 pythongtdpath:30726887 i26e3531:30792625 welcomedialogc:30812479 pythonnosmt12:30779711 pythonidxpt:30768918 pythonnoceb:30776497 asynctok:30898717 dsvsc013:30777762 dsvsc014:30777825 pythonmpswarning:30901777 dsvsc015:30821418 pythontestfixt:30866404 pythonregdiag2:30902439 pyreplss1:30879911 pythonmypyd1:30859725 pythoncet0:30859736 pythontbext0:30879054 accentitlementst:30870582 dsvsc016:30879898 dsvsc017:30880771 dsvsc018:30880772 aa_t_chat:30882232 ```
Xiao-Chenguang commented 7 months ago

This happened before with setting "execServer on" in vscode as described in #9215. This time the same issue but with it off. tensorboard totally not working with ssh remote now.

roblourens commented 7 months ago

I'm guessing the execServer setting is a red herring, probably there is some general issue. Can you check whether port forwarding works for other programs? For example, if you have node installed, my usual test is running npx http-server -p 1234 to start a webserver and forwarding 1234

Xiao-Chenguang commented 7 months ago

I'm guessing the execServer setting is a red herring, probably there is some general issue. Can you check whether port forwarding works for other programs? For example, if you have node installed, my usual test is running npx http-server -p 1234 to start a webserver and forwarding 1234

Yes, not sure about node server, but I tried port forward in python with python -m http.server 7777. This should start a simple web server for all files in the current directory. However, this also failed to show the remote files with vscode autoforward and execServer on.

And I can confirm it is the problem of vscode as I tried set LocalForward 7777 localhost:7777 in ssh config manually and python -m http.server 7777 successfully show remote files on local browser.

alexr00 commented 6 months ago

@Xiao-Chenguang, python -m http.server 7777 works fine for me. Can you repro your issue, then share the following:

Xiao-Chenguang commented 6 months ago

@Xiao-Chenguang, python -m http.server 7777 works fine for me. Can you repro your issue, then share the following:

  • a screenshot of the Ports view
  • the value of the setting remote.autoForwardPortsSource
  • the values of any other remote settings you have set

yes I can. The screenshot is attached. remote.autoForwardPortsSource is set to on. The only non-default ssh setting is "remote.SSH.useExecServer": true.

After that, I use ProxyJump to connect to the remote server. This could be different with your use case.

Screenshot 2024-01-09 at 23 41 31
alexr00 commented 6 months ago

Huh, I've never tested port forwarding with an SSH remote that I'm connected to via ProxyJump. That's most likely the problem.

@roblourens, have you tested Remote SSH with ProxyJump, and if so, do you have any tips on how I can try this out?