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

偷渡 VS Code Server

  •  1
     
  •   kouhe3 · 84 天前 · 5077 次点击
    这是一个创建于 84 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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  
       84 天前 via Android
    code server 很早就有了呀,只是没有 tunnel ,通过一个 token 就能访问
    kouhe3
        2
    kouhe3  
    OP
       84 天前
    微软整的这个 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  
       84 天前 via iPhone
    所以楼主在搞什么?我一直在吃灰云上用 docker 的 code-server 了,不得不用 docker ,直接安装在机子上的话,打开页面几乎能翻看机子所有文件!
    limerence
        4
    limerence  
       84 天前
    搞不明白这个和 github.dev 这种网页编辑器,和 wsl 中 code server 的区别是什么
    kouhe3
        5
    kouhe3  
    OP
       84 天前
    @raysonlu Microsoft VS Code Server 和 coder/code-server 和 gitpod-io/openvscode-server 的区别我不是列出来了吗。

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

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

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

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

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

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

    当然,要是有链接的话直接下载链接就行了。
    honus
        15
    honus  
       83 天前 via Android
    linux 版的 https 有办法没
    kkocdko
        16
    kkocdko  
       83 天前 via Android
    楼主请看:
    https://kkocdko.site/post/202201140225
    这个其实不算“偷渡”,因为源码都是公开的(个人认为 fleet 那种才算偷渡),n 年前就可以直接运行“yarn web”直接启动了,wiki 里头也有写如何构建 web-server 的 target 。
    kkocdko
        17
    kkocdko  
       83 天前   ❤️ 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  
       83 天前
    @honus 开个 Nginx 反代一下就行。
    kouhe3
        19
    kouhe3  
    OP
       82 天前 via Android
    @kkocdko 补充的好! 都明白这个启动器就是个 tunnel 就行了 🌚
    secondwtq
        20
    secondwtq  
       82 天前
    @kouhe3 #9 是,其实俩应该差不多

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

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