云上VSCode开发环境 - code server搭建过程及轻度使用体验
direwolf
2020-09-12 0

一直以来都有在自习室写代码的想法,之前因为疫情在家一直没什么动力折腾。主力机暗影精灵5实在是不好带出门,傻大黑粗续航短不说,风扇噪音也会影响到别人。于是我就盯上了我那台iPad Pro 11。iOS端确有一些coding app,我之前使用的是TextCode Editor,基本能满足本地coding需求,50元解锁后还能通过ssh连接到SVN,缺点是不能调试,这点真的非常影响我的购买欲(说白了还是穷)后来想起了有线上VSCode这种东西,就去Google了一波,找到了coder家的code-server。搭建过程非常简单,coder给出的指引又非常详尽(甚至怎么租虚拟主机这种事都说了...)这边就大概记述一下。

我使用的是阿里云的学生机,Linux+Nginx环境。

配置

0x00 安装code-server

非常简单,一行命令就可以完成。

curl -fsSL https://code-server.dev/install.sh | sh

在我的Ubuntu 20.04环境下,看起来是安装了一个deb包,这里也没遇到什么问题)安装完成后直接让他跑起来:

sudo systemctl start code-server@$USER

这时候code-server就跑在了8080端口上。但是现在是没法从外部访问的,guide中也提到不要将code-server直接无密码暴露在公网,因为这玩意可以任意执行指令。对于将code-server暴露,guide中也给出了几种办法。由于我的目标是在iPad上写码,ssh转发不太现实,就选择使用nginx进行反代。

0x01 code-server配置

在配置nginx之前,先来看看code-server的配置文件:

vim ~/.config/code-server/config.yaml

配置文件如下:

bind-addr: 127.0.0.1:8080
auth: password
password: a_complex_password
cert: false

这里主要是修改一下端口号和密码应该不用我说怎么改了吧?

改完之后记得重启code-server服务:

sudo systemctl restart code-server@$USER

0x02 nginx配置

原文在这里使用了certbot。我自己在阿里云那边申请了证书,就直接写nginx配置了。顺带一提,我这里没有原文提到的python-certbot-nginx,倒是有python3-certbot-nginx,前者可能在Ubuntu源里废弃了吧,不是很懂(

直接扔配置:

server {
        listen 443 ssl;
        server_name mycodeserver.direcore.xyz;

        ssl_certificate cert/just_a_cert.pem;
        ssl_certificate_key cert/just_a_key.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
                proxy_pass http://localhost:8080;
                proxy_set_header Host $host;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection upgrade;
                proxy_set_header Accept-Encoding gzip;
        }

}

ssl部分照搬阿里云文档,location部分照搬guide)记得改server_name和端口就行。总体配置起来没啥难度,就是被之前blog的配置文件摆了一道,因为某些未知原因疯狂301))把那边的重定向全删了重新写就好了,莫名其妙

现在访问刚刚配置的站点,输入密码之后戳一下Submit,等加载完之后就可以看到熟悉的vscode界面啦~

简短的使用体验

说实话,满心欢喜地配置完之后,我感觉这玩意没有我想象中那么好。输入密码之后就是漫长的等待,学校这个破网+学生机小水管带宽加成结果就是约3分钟的加载时间,甚至有了缓存之后也需要至少2分钟。这期间整个页面先是卡在输密码的界面,然后白屏)连进去之后断连简直就是家常便饭,甚至我用Safari的时候都觉得他根本就没连上过。Chromium核的Edge表现要好上不少,但是断连也是时有发生。我一度觉得这玩意还不如我自己本地写,然后推到服务器上用Termius调试,至少这样的workflow会稳定很多。我也尝试了上CDN,但结果非常莫名其妙,这中间的瞎折腾过程甚至导致blog解析一度混乱)
但是之后情况就好起来了。整个服务逐渐变得稳定,不再像之前那样疯狂断连了(就算是用Safari)。虽然加载依旧非常慢,但是稳定性方面可以接受了。昨日我认真感受了一下它,在网络稳定的前提下确实能在iPad上拥有较为完整的VSCode体验,可以利用Linux宿主机的环境进行调试,这点还是非常舒服的。当然,这一切的前提,都是稳定,而且服务器带宽得够,而且不用Safari,尽管PWA真的很美好()

评论 0
没有评论
评论已关闭
发表评论
评论 取消回复
Copyright © 2024 .direwolf