【Linux】浏览器写代码!部署code-server远程vscode网页
部署code-server远程vscode网页,在浏览器上写代码!
参考文档 https://developer.aliyun.com/article/876967#slide-7
1.什么是code-server?
注意,这不是在linux系统上安装vscode软件(和windows一样的vscode客户端)
code-server是一个社区项目(非微软官方)其作用是在你的linux主机(云服务器)上部署一个可以在浏览器上访问的vscode页面,类似官方的vscode.dev
微软官方推出的vscode网页版 https://vscode.dev/
它可以通过浏览器的api访问你电脑上的本地文件,此时浏览器就是一个vscode客户端
code-server同理,其访问的是你linux服务器上的文件,作用类似于vscode插件remote ssh
,让我们可以用浏览器,在任何电脑、平板上进行远程开发,无须下载vscode客户端或者ssh软件!
1.1 官方的vscode-server?
微软官方确实有一个vscode-server,在官网可以下载。我测试了之后,发现它是打了一个隧道,通过vscode.dev
的子域名访问,会转发到你的主机上。
在我这里的测试,发现压根连不上微软的服务器。想想其实也很正常,因为vscode-server的文档页面连中文都没有,再加上微软的服务器,国内用不了也是意料之中
2.安装
2.1 下载安装包
截至本文创作时间23-03-09
,code-server的最新版本是4.10.1
,可以用下面的命令获取到linux下的安装包
1 | wget https://github.com/cdr/code-server/releases/download/v4.10.1/code-server-4.10.1-linux-amd64.tar.gz |
如果上面这个命令你无法访问,可以去github的releases里面手动下载安装包
我的系统是amd64,即x86架构。在github里面也是找linux amd64
的包进行安装
1 | $ uname -a |
如果你使用的是树莓派等设备,请用uname -a
确认你的系统架构,并下载对应的包
github的release下载慢,可以用下面这个网站加速(用迅雷下,速度起飞)
1 | https://doget.nocsdn.com/#/ |
下载完成后,将压缩包用xftp传输到服务器上
2.2 解压
使用下面的命令解压刚刚下载好的压缩包
1 | tar -zxvf code-server-4.10.1-linux-amd64.tar.gz |
给解压出来的文件夹改个短名字vsc
1 | mv code-server-4.10.1-linux-amd64 vsc |
cd进入这个文件夹
1 | cd vsc |
ls -l
,基本文件如下
1 | total 792 |
直接进入bin文件夹,我们需要用的可执行文件就在里头
1 | $ ls |
这个code-server
就是我们要的可执行文件
2.3 启动code-server
1 | export PASSWORD="配置一个密码" |
上面这个命令,启动之后,会创建一个端口为8888的web服务,此时使用ip:8888
的方式,应该就可以访问到你的code-server服务了!
1 | [2023-03-09T14:52:07.081Z] info Wrote default config file to ~/.config/code-server/config.yaml |
出现下面的页面,那就是安装成功了!输入你刚刚设置的密码,就可以像使用vscode一样使用code-server了!
2.4 配置文件
首次启动了之后,会在你的用户路径下生成一个.config/code-server
文件夹,里面有一个config.yaml
1 | $ ls .config/code-server |
打开这个文件,可以在里面配置code-server的密码,以及https访问。其余的配置项我还没有关注过,可以去看看github上的文档
1 | bind-addr: 127.0.0.1:8080 |
默认的密码巨长,改成你自己的即可。在这里还可以修改默认绑定的ip和端口,后续启动code-server,就不需要手动指定了,直接运行即可
1 | ./code-server |
2.5 tmux后台运行
nohup运行code-server有一点问题,所以要用tmux
如果没有这个软件,先安装
1 | sudo yum install tmux |
创建一个新会话,你可以理解为这是一个脱离于bash的独立shell页面,即便当前bash退出了,code-server也不会退出
1 | tmux new -s vscode_online |
开启新会话后,进入vsc的bin目录,启动code-server,命令是不变的
1 | ./code-server |
随后直接关掉当前bash,此时就已经实现了code-server的后台运行
1 | ## 接入会话 |
3.一些问题
3.1 nginx转发遇到1006错误
我在采用nginx转发的时候,遇到了这个问题
个人猜测,这大概率是因为我在config.yaml
里面配置了code-server
的https导致的
1 | cert: false # 关闭https |
将cert修改回false,再次测试,发现还是有这个问题!
实际上,如果你进行了nginx转发,并不需要配置code-server的https
保持默认的http即可
后来发现是我的nginx转发设置有问题,正确的转发配置如下
1 | location / { |
下面给出一个nginx的https的完整配置文件!
1 | server { |
3.2 C/C++插件
由于code-server是一个第三方项目,所以一些官方的插件(如pylance)直接在code-server的插件商店里面搜是没有的
我们需要去微软的vscode官网上下载插件的VSIX文件,使用本地文件的方式进行安装
不过,pylance用这个办法依旧无法安装。看来有些插件只有官方的vsc才能安装
3.3 本地文件
如果你用过vscode的remote-ssh
插件连过你这个服务器,用户目录下面会有两个文件夹
1 | .vsc |
这两个文件夹是vscode的插件remote-ssh
生成的,和本文安装的code-server无关!
3.4 tmux常用语句
1 | tmux new 创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令) |