Last updated on June 30, 2024 am
前言 插头DP的坑等初赛之后再填把。
正文 有时候出门只带了iPad。怎么办?直接打开App Store搜索C++然后下载。不行,这样不够优雅 。那怎么办?于是我虎视眈眈地瞅着角落里的safari…
准备工具 浏览器又没有g++,所以我们肯定需要准备一台远程计算机(算了就是服务器),装上g++,其实这样就可以直接干活了。但是很明显,直接在SSH上编译依然不是很优雅 ,所以还需要一点东西。 所以,这个东西就是code-server,一个在浏览器里面运行的VScode,最后的效果长这样: 这才是优雅!
部署code-server 去github页面下载code-server,Debian/Ubuntu系下载deb,CentOS/RHEL系下载rpm(这都不用我来教吧) :evil: https://github.com/cdr/code-server/releases 若有同学因网络问题打不开github,这里直接放出截止2021.9.19的最新版本code-server的下载直联,直接到服务器离线下载即可: [mdx_table header=”true”] 系统 下载地址 —– Debian/Ubuntu https://github.com/cdr/code-server/releases/download/v3.12.0/code-server\_3.12.0\_amd64.deb —– CentOS/RHEL https://github.com/cdr/code-server/releases/download/v3.12.0/code-server-3.12.0-amd64.rpm [/mdx_table]
安装完之后,直接在终端输入code-server
,然后会输出这些信息:
1 2 3 4 5 6 7 8 [2021 -09 -19 T15:01 :34.457 Z] info Wrote default config file to ~/.config/code-server /config.yaml [2021 -09 -19 T15:01 :34.976 Z] info code-server 3.12 .0 b37ff28a0a582aee84a8f961755d0cb40a4081db [2021 -09 -19 T15:01 :34.978 Z] info Using user -data-dir ~/.local /share /code-server [2021 -09 -19 T15:01 :35.011 Z] info Using config file ~/.config/code-server /config.yaml [2021 -09 -19 T15:01 :35.011 Z] info HTTP server listening on http://127.0 .0 .1 :8080 [2021 -09 -19 T15:01 :35.011 Z] info - Authentication is enabled [2021 -09 -19 T15:01 :35.011 Z] info - Using password from ~/.config/code-server /config.yaml [2021 -09 -19 T15:01 :35.011 Z] info - Not serving HTTPS
这时,我们ctrl+c退出程序,进入~/.config/code-server
,编辑里面的config.yaml,默认状态应该是这样子的:
1 2 3 4 bind-addr: 127.0 .0 .1 :8080 auth: password password: 9f77cba7aab939cccfb31d7c cert: false
如果你是个人使用的话,就可以把密码给改了。若想公开使用,那么我会在下面告诉你如何做好安全工作。 如果你只是在内网进行使用,并不需要反向代理来实现HTTPS,那么你应该把bind-addr: 127.0.0.1:8080
改成bind-addr: 0.0.0.0:8080
。当然,8080端口也可以改掉。如果需要反向代理,那么就只改端口或干脆不动。 最后,在终端输入code-server
,浏览器输入对应域名或IP,就可以干活啦!
HTTPS 本人强迫症,没有SSL,看到网址后面带上端口号就不高兴。 :cry: 所以带上HTTPS是必不可少的。 老样子,打开宝塔,新建网站,挂上SSL,挂好反向代理,我是这样填的: 如果你此时打开你的反向代理网站,那么恭喜你,你将看到一片空白。。。其实第一次部署code-server的时候我就是这个地方卡了好久,在不知道过了多长时间之后,我在部署sshwifty的时候看到websocket连接失败的现象,才想到可能code-server的反向代理网页没有和后台websocket服务进行连接,画面当然是空白了! 解决办法也很简单,在宝塔反向代理中点击配置文件
: 然后在两句 proxy_set_header REMOTE-HOST $remote_addr;
的后面加上这两行东西:
1 2 proxy_set_header Upgrade $http_upgrade ; proxy_set_header Connection $connection_upgrade ;
如这是我原来的配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 location ~* \.(gifpngjpgcssjswoffwoff2)$ { proxy_pass http://127.0.0.1:2021; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header REMOTE-HOST $remote_addr ; expires 12h ; }location / { proxy_pass http://127.0.0.1:2021; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header REMOTE-HOST $remote_addr ; add_header X-Cache $upstream_cache_status ; add_header Cache-Control no -cache; }
加上之后就变成了这样子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 location ~* \.(gifpngjpgcssjswoffwoff2)$ { proxy_pass http://127.0.0.1:2021; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header REMOTE-HOST $remote_addr ; proxy_set_header Upgrade $http_upgrade ; proxy_set_header Connection $connection_upgrade ; expires 12h ; }location / { proxy_pass http://127.0.0.1:2021; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header REMOTE-HOST $remote_addr ; proxy_set_header Upgrade $http_upgrade ; proxy_set_header Connection $connection_upgrade ; add_header X-Cache $upstream_cache_status ; add_header Cache-Control no -cache; }
然后,清理浏览器缓存,再次打开反代网站的时候就可以正常显示了。
公开 要想公开,安全肯定是第一位的。因为在code-server当中,我们可以直接调用bash,所以用root账号运行肯定是不安全的。 所以,我们要新建一个账号,然后用新建的账号来运行code-server,这样在调用bash的时候就没有root权限了。 要注意的是,使用新账号运行code-sevrer的时候,配置文件要记得重新修改啊!
后台运行 我在cloudreve这篇文章中说过一个插件叫supervisor。通过宝塔的supervisor,我们可以很方便地运行后台任务,比nohup
要强上许多。 建议同学们在运行code-server的时候还是新建一个非root账号,这样万一打rm的时候手滑也没有很大损失。 我是这么配置的,新用户名为code:
结束 经过上面一番折腾之后,我们终于可以在iPad上优雅地撸代码了。不过这里说一句,我们购买的服务器普遍 配置不是很高,比如我这一台就是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 . Disk: **G / **G (**%) .++ .++.o+++oo+:` /dddhhh. .+.o+oo:. ` oddhhhh+ \+.++o+o`` -`` `` .:ohdhhhhh+ `:o+++ ` ohhhhhhhhyo++os: .o:`.syhhhhhhh/.oo++o` /osyyyyyyo++ooo+++/ `` `` ` +oo+++o\: ` oo++.
还是单核的。这注定在编译的时候速度会非常非常慢。所以,应急可以,但是当主力机就憋想了!