code-server: Does not work on windows

When trying to access code-server through the proxy It is unable to load any of the extensions and checking the log shows the results below. Screenshot This does not happen when I try to access it from my ubuntu laptop, it only fails on Windows.

  • Web Browser: Chrome
  • Local OS: Windows
  • Remote OS: Ubuntu 20.04
  • Remote Architecture: x64
  • code-server --version: 3.7.3 93fb76e4a71b1959ec2a23481ba2611200d714b2

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 30 (21 by maintainers)

Most upvoted comments

I’ve got it working without modifying the Windows Firewall.

I’m not sure the exact issue, but I’ll share my findings and the fix here in hopes it sheds light or helps someone else.

I ran Wireshark to see what was going on when loading code-server in the browser. One thing that stood out to me were the repeated ICMP Redirects. These caused by having a static route directing traffic to my remote subnet 10.3.0.0/16.

To avoid the redirect I added a static route to my machine that bypassed my router. To my surprise code-server made connection and extensions fired up. It worked.

So two things: 1) it appears as if Windows Firewall ignores the redirects by default and doesn’t modify the local route table; 2) code-server wasn’t liking the redirect or going through the router for the extension host connection.

I modified my DHCP server to hand out static routes using the DHCP option “121” and providing the hex encoded string of routes. It’s working fine now.

I’ll also note that I use many other services (web, ssh, routing, etc…) on the 10.3.X.X network and haven’t experienced any issues up until this code-server bug.

I’ve been able to reproduce this issue. I have code-server running in the cloud, accessed via private IP over a WireGuard connection.

My local subnet is 10.2.0.0/16 and my remote private subnet is 10.3.0.0/16. Hosting cloud-server within the local 10.2.X.X subnet works fine, accessing via 10.3.X.X with default Windows Firewall (connection set to Private) results in the reconnect error.

I can reproduce the issue by turning off the Windows Firewall and loading code-server. The connection comes up right away and extensions start running. Note: after this initial connection code-server will continue to work for some time after re-enabling the firewall. I believe this is due to connection state tracking.

I turned on logging and didn’t see any related DROP messages. I’m continuing to look into the issue. Ideally I’d like to find a solution that doesn’t involve modifying the firewall for each client.

Ideas?

It worked by restarting my server. The old server process was not properly killed when I installed the new package over it.

Strange, do any of those other services that work use web sockets? Maybe it’s somehow specific to how web socket works.

Yes, the Windows Firewall as most is stateful so it memorizes outgoing connections for a while to let replies in. Maybe there is a message from the server to the client after a too long delay. Maybe more frequent pings from the client to the server could fix the issue. But I am just roughly guessing, I am not an expert in sockets and firewalls at all. 😉