简介
VS Code是一款功能非常强大、拥有丰富插件的跨平台(Windows,Mac,Linux)开源免费的编辑器,非常好用。最近在学习Python过程中,更是感受到了它的强大,其功能不亚于专业的IDE。
code-server是VS Code运行在远程服务器上,然后通过浏览器访问即可使用VS Code,本篇文章详细介绍了如何远程部署code-server以及过程中遇到的问题及对应的解决方案。
Github地址:https://github.com/cdr/code-server
CentOS部署coder-server
cdr/code-server部署方式有两种,可以使用docker部署,或者直接下载二进制文件即可运行。这里我使用二进制进行部署。
我直接使用远程服务器部署,可以随时使用任何电脑来写代码,非常方便。当然也可以使用Windows10 WSL或者本地Linux部署。
使用ssh连接远程服务器
在Releases · cdr/code-server下载最新版本的code-server
1 | wget https://github.com/cdr/code-server/releases/download/2.1478-vsc1.38.1/code-server2.1478-vsc1.38.1-linux-x86_64.tar.gz |
- 启功
code-server
1 | cd code-server1.1156-vsc1.33.1-linux-x64/ |
但是很不幸,控制台输出错误(亲测Ubuntu18可直接启动),错误信息:
1 | [[email protected] code-server1.939-vsc1.33.1-linux-x64]# ./code-server |
具体解决方法查看最下面的参考1,我使用参考文章的方法一解决的。具体步骤如下:
- 获取
libstdc++.so.6.0.25
版本库:
1 | cd /opt |
- 备份原来的
libstdc++.so.6
,并链接刚刚解压的libstdc++.so.6
文件
1 | cd /usr/lib64 |
- 完成后即可解决
libstdc++.so.6
的问题,进入目录启动code-server
,控制台输出:
1 | (node:29316) [DEP0005] DeprecationWarning: Buffer() is deprecated due to securit y and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. |
浏览器输入https://IP:8443
或者https://域名:端口
即可访问,访问密码为控制台输出的Password
后的字段。
- 注意必须使用https进行访问
- SSL证书为code server自签发的证书,可能会被浏览器提示不安全,直接访问即可(后面会解决)
- 记得放行
8443
端口,我是使用宝塔面板控制的,在”首页-安全”里面放行即可 - 重新启动后,密码会重新生成
- 推荐使用国内的或低延迟的服务器部署
成功访问。
到这里,我们就基本完成了code-server的部署。
存在的问题
虽然我们已成功部署了code-server服务,但有几个问题仍然不可避免!
- 问题1:我们使用ssh连接的方式启动
code-server
,一旦断开ssh连接,那么code-server就不可以再使用了 - 问题2:code-server自签的证书被浏览器提示不安全
- 问题3:域名+端口的访问方式实在是太麻烦,而且还会暴露端口,不安全
那么接下来我们一一来解决这些问题。问题2、3我是使用宝塔面板来操作的,详细点击
优化code-server服务
我们针对上述三个问题来进行解决。
- 问题1:我们使用ssh连接的方式启动
code-server
,一旦断开ssh连接,那么code-server就不可以再使用了
这里我使用的方式是借用tmux,tmux是一款优秀的终端复用软件,它比Screen更加强大:tmux/tmux: tmux source code
我们在centOS安装tmux:sudo yum install tmux
,tmux的使用教程可查看参考2.
安装完成后,我们使用tmux来启动code-server
1 | # 启用一个名为codeserver的会话 |
这样我们就完美解决了这个问题,不再需要一直登录ssh了。
- 问题2:code-server自签的证书被浏览器提示不安全
必须先添加SSL证书,然后设置反向代理。
该步骤结合第三步,先添加一个站点,设置好域名,不需要任何环境,php版本设置为纯静态,然后在面板的SSL中申请Let’s Encrypt免费SSL证书即可。
- 问题3:域名+端口的访问方式实在是太麻烦,而且还会暴露端口,不安全
这里我们改变默认端口进行访问,并且使用Nginx反向代理:code-server/quickstart.md ,使用宝塔面板来操作。
修改端口:我们可以选择合适的端口开启code-server,如: ./code-server --port 28865
添加Nginx反向代理:
注意,这里有一个很重要的事情,在反向代理的配置文件中,按如下方式设置配置文件,否则登录完成后一片全黑,不能正常显示。
这是官方推荐的Nginx反向代理配置模板:
1 | server { |
设置完成后,我们就可以直接使用域名来访问code-server了,而且也没有证书不安全的提示,完美解决了上述问题。
这样我们就可以愉快地在浏览器上使用VsCode了,使用浏览器第一次登录后,需要等待一段时间,再次使用基本都是秒开的,这一点非常不错,赶紧去体验一番了。
参考:
centos7 ./code-server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found 解决方法
Tmux使用手册 | louis blog