kouhe3

偷渡 VS Code Server

  •  
  •   kouhe3 · Jul 15, 2022 · 9754 views
    This topic created in 1571 days ago, the information mentioned may be changed or developed.

    0.前言

    有些人可能申请了 https://aka.ms/vscode-server-signup 但是还没有通过,一直在等。

    那我这里直接水一篇写教程出来好了。

    1.下载 code server launcher

    Linux 和 macOS 运行

    wget -O- https://aka.ms/install-vscode-server/setup.sh | sh
    

    Windows x64 运行

    New-Item "$HOME\.vscode-server-launcher\bin" -ItemType "directory" -Force
    Invoke-WebRequest "https://aka.ms/vscode-server-launcher/x86_64-pc-windows-msvc" -OutFile "$HOME\.vscode-server-launcher\bin\code-server.exe"
    [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\.vscode-server-launcher\bin", "User")
    

    Windows ARM 运行

    New-Item "$HOME\.vscode-server-launcher\bin" -ItemType "directory" -Force
    Invoke-WebRequest "https://aka.ms/vscode-server-launcher/aarch64-pc-windows-msvc" -OutFile "$HOME\.vscode-server-launcher\bin\code-server.exe"
    [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\.vscode-server-launcher\bin", "User")
    

    2.启动

    刷新环境变量

    运行

    code-server serve-local
    

    然后 launcher 会去下载

    https://update.code.visualstudio.com/commit:b06ae3b2d2dbfe28bca3134cc6be65935cdfea6a/server-win32-x64-web/stable

    并启动 server.cmd

    3.使用

    浏览器打开 localhost:8000

    4.总结

    如果不想用微软的 tunnel 做端口映射, 其实完全不需要申请就能用...

    38 replies  •  2024-08-15 18:34:59 +08:00
    beginor
    beginor
    Jul 15, 2022 via Android
    1
    code server 很早就有了呀,只是没有 tunnel ,通过一个 token 就能访问
    kouhe3
    kouhe3
    OP
    Jul 15, 2022
    2
    微软整的这个 code server 和 https://github.com/coder/code-server ,https://github.com/gitpod-io/openvscode-server

    的 2 个区别

    1.支持 Windows 跑 code server
    2.扩展市场用 https://marketplace.visualstudio.com/
    raysonlu
    raysonlu
    Jul 15, 2022 via iPhone
    3
    所以楼主在搞什么?我一直在吃灰云上用 docker 的 code-server 了,不得不用 docker ,直接安装在机子上的话,打开页面几乎能翻看机子所有文件!
    limerence
    limerence
    Jul 15, 2022
    4
    搞不明白这个和 github.dev 这种网页编辑器,和 wsl 中 code server 的区别是什么
    kouhe3
    kouhe3
    OP
    Jul 15, 2022
    5
    @raysonlu Microsoft VS Code Server 和 coder/code-server 和 gitpod-io/openvscode-server 的区别我不是列出来了吗。

    这个虽然看起来和 coder code server 差不多,但是他用的后端是和 VS Code Remote SSH 一样的啊。
    kouhe3
    kouhe3
    OP
    Jul 15, 2022
    6
    @limerence 也许你可以考虑一下在 Windows 跑 VS Code Server , 然后安装 remote WSL 扩展。
    limerence
    limerence
    Jul 16, 2022
    7
    @kouhe3 所以和 wsl/linux 中 code server 的区别就是能跑在 windows 中吗
    secondwtq
    secondwtq
    Jul 16, 2022
    8
    我一直都在用 OSS 版的 code-server ,好处是一可以把所有环境都扔在一台机器上(哪怕没有 GUI )方便编译和调试,二是可以用 Firefox 跑缓解 Electron 的内存占用问题

    我记得 OSS 版最开始是第三方自己 hack 出来的,后来微软和 GitHub 也开始搞。然后我这边感觉做得越来越完善
    理论上来说官方支持浏览器运行,有利于减小浏览器版和 standalone 版的差距
    kouhe3
    kouhe3
    OP
    Jul 16, 2022
    9
    @secondwtq 你说的 [OSS 版 code-server] 是不是上面的 coder/code-server
    kouhe3
    kouhe3
    OP
    Jul 16, 2022 via Android
    10
    微软这个 code server 能在 win 上跑是有原因的啊,你注意看上面图里那个文件夹 .vscode-server , 这是 VSCode SSH 远程开发的后端。
    用过 VSCode SSH Remote 扩展的话都知道 VSCode 的 SSH 远程开发支持 Linux/macOS/Windows.
    这个 code server 和 ssh 远程开发用了同一个后端,那它肯定支持 win 啊。
    itplanes01
    itplanes01
    Jul 16, 2022
    11
    这个相当于完全体版 Code Server ,Pylance IntelliCode 这些只能官方 VS Code 使用的插件都能用
    CokeMine
    CokeMine
    Jul 16, 2022 via Android
    12
    kouhe3
    kouhe3
    OP
    Jul 16, 2022
    14
    @CokeMine
    @lichao

    确实,这两个 linux 的链接以前就有了。

    我本来想直接放 win 版 server 的链接出来的。

    不过我发现新出来的需要申请的内测的 code-server 其实就是个加了 tunnel 的启动器。

    然后就写了这篇水贴,说一下这个启动器其实不需要申请内测就可以跑 localhost(

    当然,要是有链接的话直接下载链接就行了。
    honus
    honus
    Jul 17, 2022 via Android
    15
    linux 版的 https 有办法没
    kkocdko
    kkocdko
    Jul 17, 2022 via Android
    16
    楼主请看:
    https://kkocdko.site/post/202201140225
    这个其实不算“偷渡”,因为源码都是公开的(个人认为 fleet 那种才算偷渡),n 年前就可以直接运行“yarn web”直接启动了,wiki 里头也有写如何构建 web-server 的 target 。
    kkocdko
    kkocdko
    Jul 17, 2022❤️2
    17
    看到楼主的回复了,抱歉刚刚没注意。由于最近看到很多很混乱的解释(特别是某些半吊子营销号的文章),在这大致总结一下 VSCode 的各种变体:

    Desktop:
    - 最常用。Electron 构建,本地运行。

    VS Code for the Web:
    - 例如 vscode.dev , github.dev 。
    - UI 和扩展都运行在浏览器中。
    - 功能半残,支持的扩展较少,只有 Prettier 等可以完全在浏览器环境中运行的扩展(纯 JS 或 WASM ),无法使用其他依赖原生功能的扩展。

    Code Server Web:
    - 例如 GitHub Codespace ,本次预览的 VS Code Server ,coder.com 的 code-server 。
    - 扩展运行在服务器,UI 运行在浏览器。
    - 功能上约等于 Desktop 变体。相当于把标准版的 UI 渲染部分挪到浏览器。

    一些补充:
    - VSCode 是开源的(废话),其本体(不含扩展)对普通开发者很友好,关于如何构建上述三种变体,在 [Wiki / How to Contribute]( https://github.com/microsoft/vscode/wiki/How-to-Contribute#code-server-web) 中都能找到。
    - 由于微软的协议限制,coder.com 的 code-server 等第三方无法使用原版扩展市场。这也导致例如 Pylance 等闭源扩展无法从正常渠道安装。
    - 本次预览的 VS Code Server 约等于 自行构建的 Code Server Web 变体 + 官方扩展市场 + 微软提供的类似内网穿透的工具。
    kkocdko
    kkocdko
    Jul 17, 2022
    18
    @honus 开个 Nginx 反代一下就行。
    kouhe3
    kouhe3
    OP
    Jul 17, 2022 via Android
    19
    @kkocdko 补充的好! 都明白这个启动器就是个 tunnel 就行了 🌚
    secondwtq
    secondwtq
    Jul 17, 2022
    20
    @kouhe3 #9 是,其实俩应该差不多

    单说“Visual Studio Code”这个名字的话是微软自己的专有版本,开源的那个其实叫"Code - OSS",Linux 系统和社区里这种区分一直都有很强的存在感,就像现在的 NVIDIA 闭源内核驱动和 open-gpu-kernel-modules
    whitegerry
    whitegerry
    Jul 17, 2022 via iPhone
    21
    官方的这个怎么支持 pwa ?
    honus
    honus
    Jul 17, 2022
    22
    linux 版只支持 tkn 加密吗?要是类似 code-server 那种输入密码进入好一点
    lichao
    lichao
    Jul 17, 2022
    23
    @honus 这两种方式并没有什么区别吧
    corvofeng
    corvofeng
    Jul 17, 2022
    24
    欢迎你试用我写的工具

    https://www.v2ex.com/t/864877

    https://corvo.myseu.cn/2022/06/18/2022-06-18-%E6%94%B9%E9%80%A0upterm%E6%94%AF%E6%8C%81VSCodeWeb/


    我还是准备把这个工具继续做下去的, 想办法支持在 vscode.dev 上面连接
    MasterMonkey
    MasterMonkey
    Jul 17, 2022
    25
    怎么启用 https 模式? ip 模式好像不让用剪切板
    raysonlu
    raysonlu
    Jul 18, 2022 via iPhone
    26
    所以,其实就是一个可以用官方插件市场的 code-server?那么,有 docker 版本吗?
    kouhe3
    kouhe3
    OP
    Jul 18, 2022 via Android
    27
    @MasterMonkey
    加个反代上 https
    kouhe3
    kouhe3
    OP
    Jul 18, 2022 via Android
    28
    @raysonlu 好像没有 docker 版
    raysonlu
    raysonlu
    Jul 18, 2022
    29
    @kouhe3 安装在系统上,就几乎变得远程服务器所有文件可读
    kouhe3
    kouhe3
    OP
    Jul 18, 2022 via Android
    30
    @raysonlu 你觉得所有文件可读很危险吗?
    raysonlu
    raysonlu
    Jul 18, 2022
    31
    @kouhe3 不危险吗?
    kouhe3
    kouhe3
    OP
    Jul 18, 2022 via Android
    32
    @raysonlu 那你需要 dev container,
    而不是这个东西, 这个东西和 remote ssh dev 是一样的
    whitegerry
    whitegerry
    Jul 20, 2022
    33
    @kouhe3 怎么以 pwa 的方式来用?一直没搞定这个。
    kouhe3
    kouhe3
    OP
    Jul 20, 2022 via Android
    34
    @whitegerry 自己写一个 PWA 网页开在 localhost:8000, 然后打开 Chrome 安装 App.
    然后再在 8000 启动 vs code server ,Chrome 会提示更新网页。
    whitegerry
    whitegerry
    Jul 21, 2022
    35
    @kouhe3 搞定了,用之前 code-server 那个端口就 ok 了
    xqdoo00o
    xqdoo00o
    Aug 11, 2022
    36
    @kkocdko nginx 反代之后打不开
    xqdoo00o
    xqdoo00o
    Aug 11, 2022
    37
    解决了,还要代理下 websocket. 参考 http://nginx.org/en/docs/http/websocket.html
    还要加个 header, proxy_set_header Host $host;
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1432 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 22:03 · PVG 06:03 · LAX 14:03 · JFK 17:03
    ♥ Do have faith in what you're doing.