V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kouhe3
V2EX  ›  Visual Studio Code

偷渡 VS Code Server

  •  1
     
  •   kouhe3 · 2022-07-15 22:30:45 +08:00 · 7250 次点击
    这是一个创建于 622 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 做端口映射, 其实完全不需要申请就能用...

    37 条回复    2022-08-11 17:37:46 +08:00
    beginor
        1
    beginor  
       2022-07-15 22:36:33 +08:00 via Android
    code server 很早就有了呀,只是没有 tunnel ,通过一个 token 就能访问
    kouhe3
        2
    kouhe3  
    OP
       2022-07-15 22:51:15 +08:00
    微软整的这个 code server 和 https://github.com/coder/code-serverhttps://github.com/gitpod-io/openvscode-server

    的 2 个区别

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

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

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

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

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

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

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

    当然,要是有链接的话直接下载链接就行了。
    honus
        15
    honus  
       2022-07-17 01:36:29 +08:00 via Android
    linux 版的 https 有办法没
    kkocdko
        16
    kkocdko  
       2022-07-17 02:13:07 +08:00 via Android
    楼主请看:
    https://kkocdko.site/post/202201140225
    这个其实不算“偷渡”,因为源码都是公开的(个人认为 fleet 那种才算偷渡),n 年前就可以直接运行“yarn web”直接启动了,wiki 里头也有写如何构建 web-server 的 target 。
    kkocdko
        17
    kkocdko  
       2022-07-17 02:45:56 +08:00   ❤️ 2
    看到楼主的回复了,抱歉刚刚没注意。由于最近看到很多很混乱的解释(特别是某些半吊子营销号的文章),在这大致总结一下 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
        18
    kkocdko  
       2022-07-17 02:49:08 +08:00
    @honus 开个 Nginx 反代一下就行。
    kouhe3
        19
    kouhe3  
    OP
       2022-07-17 09:07:35 +08:00 via Android
    @kkocdko 补充的好! 都明白这个启动器就是个 tunnel 就行了 🌚
    secondwtq
        20
    secondwtq  
       2022-07-17 12:58:03 +08:00
    @kouhe3 #9 是,其实俩应该差不多

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

    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
        25
    MasterMonkey  
       2022-07-17 23:10:57 +08:00
    怎么启用 https 模式? ip 模式好像不让用剪切板
    raysonlu
        26
    raysonlu  
       2022-07-18 00:47:01 +08:00 via iPhone
    所以,其实就是一个可以用官方插件市场的 code-server?那么,有 docker 版本吗?
    kouhe3
        27
    kouhe3  
    OP
       2022-07-18 01:21:54 +08:00 via Android
    @MasterMonkey
    加个反代上 https
    kouhe3
        28
    kouhe3  
    OP
       2022-07-18 01:22:22 +08:00 via Android
    @raysonlu 好像没有 docker 版
    raysonlu
        29
    raysonlu  
       2022-07-18 09:13:57 +08:00
    @kouhe3 安装在系统上,就几乎变得远程服务器所有文件可读
    kouhe3
        30
    kouhe3  
    OP
       2022-07-18 09:19:46 +08:00 via Android
    @raysonlu 你觉得所有文件可读很危险吗?
    raysonlu
        31
    raysonlu  
       2022-07-18 10:54:28 +08:00
    @kouhe3 不危险吗?
    kouhe3
        32
    kouhe3  
    OP
       2022-07-18 11:14:41 +08:00 via Android
    @raysonlu 那你需要 dev container,
    而不是这个东西, 这个东西和 remote ssh dev 是一样的
    whitegerry
        33
    whitegerry  
       2022-07-20 16:18:32 +08:00
    @kouhe3 怎么以 pwa 的方式来用?一直没搞定这个。
    kouhe3
        34
    kouhe3  
    OP
       2022-07-20 17:26:13 +08:00 via Android
    @whitegerry 自己写一个 PWA 网页开在 localhost:8000, 然后打开 Chrome 安装 App.
    然后再在 8000 启动 vs code server ,Chrome 会提示更新网页。
    whitegerry
        35
    whitegerry  
       2022-07-21 09:20:22 +08:00
    @kouhe3 搞定了,用之前 code-server 那个端口就 ok 了
    xqdoo00o
        36
    xqdoo00o  
       2022-08-11 14:37:34 +08:00
    @kkocdko nginx 反代之后打不开
    xqdoo00o
        37
    xqdoo00o  
       2022-08-11 17:37:46 +08:00
    解决了,还要代理下 websocket. 参考 http://nginx.org/en/docs/http/websocket.html
    还要加个 header, proxy_set_header Host $host;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2740 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:34 · PVG 20:34 · LAX 05:34 · JFK 08:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.