一直以来都有在自习室写代码的想法,之前因为疫情在家一直没什么动力折腾。主力机暗影精灵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真的很美好()