一、安装
命令安装(需要vpn)
# 添加官方仓库,安装code-sever,创建systemd服务
curl -fsSL https://code-server.dev/install.sh | sh
验证
code-server --version
# 查看服务状态
systemctl status code-server@$USER
二、配置文件路径
默认路径:~/.config/code-server/config.yaml
bind-addr: 0.0.0.0:xxx # 外部可访问
password: xxxx
修改后重启:
sudo systemctl restart code-server@$USER
三、创建简易服务脚本
不建议开机自启动,长时间会导致服务器卡断
# 开启自启动
sudo systemctl enable --now code-server@$USER
建议创建一个简易脚本,随用随启
#!/bin/bash
USER="chunxiao"
# 定义服务名称(固定为 code-server@alice)
SERVICE="code-server@$USER"
# 检查参数是否正确
if [ $# -ne 1 ]; then
echo "用法: $0 [start|stop|status]"
echo "示例:"
echo " $0 start - 启动 code-server@$USER 服务"
echo " $0 stop - 停止 code-server@$USER 服务"
echo " $0 status - 查看 code-server@$USER 服务状态"
echo " $0 restart - 重启 code-server@$USER 服务状态"
echo " $0 log - 查看 code-server@$USER 日志"
exit 1
fi
# 根据输入参数执行对应操作
case "$1" in
start)
echo "启动 $SERVICE 服务..."
sudo systemctl start "$SERVICE"
;;
restart)
echo "重启 $SERVICE 服务..."
sudo systemctl restart "$SERVICE"
;;
stop)
echo "停止 $SERVICE 服务..."
sudo systemctl stop "$SERVICE"
;;
status)
echo "查看 $SERVICE 服务状态:"
sudo systemctl status "$SERVICE" --no-pager
;;
log)
echo "查看 $SERVICE 日志:"
journalctl -u $SERVICE.service -n 50 --no-pager
;;
*)
echo "错误:未知命令 '$1'"
echo "用法: $0 [start|stop|status]"
exit 1
;;
esac
四、开启HTTPS
注意:不开启HTTPS会导致code-server一些服务无法使用,例如markdown预览。
创建证书配置文件(解决 SAN 问题)
创建临时文件:cert.conf
[req]
default_bits = 2048
prompt = no
default_md = sha256
x509extensions = v3ca
distinguished_name = dn
[dn]
C = CN
ST = YourProvince
L = YourCity
O = YourOrganization
OU = YourDepartment
CN = xxx.xxx.xxx.xxx # 你的访问IP
[v3_ca]
subjectAltName = IP:xxx.xxx.xxx.xxx # 添加IP作为SAN
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
basicConstraints = CA:TRUE
生成证书和私钥
mkdir -p ~/.config/code-server/certs
# 生成证书(有效期10年,可按需修改)
openssl req -new -newkey rsa:2048 -nodes \\
-keyout ~/.config/code-server/certs/code-server.key \\
-out ~/.config/code-server/certs/code-server.csr \\
-config cert.conf
openssl x509 -req -days 3650 \\
-in ~/.config/code-server/certs/code-server.csr \\
-signkey ~/.config/code-server/certs/code-server.key \\
-out ~/.config/code-server/certs/code-server.crt \\
-extensions v3_ca -extfile cert.conf
# 清理临时文件
rm cert.conf ~/.config/code-server/certs/code-server.csr
修改配置文件
在 systemd 启动环境中,~ 不会自动展开为 /home/用户名,用绝对路径
bind-addr: 0.0.0.0:xxx
cert: /home/xxx/.config/code-server/certs/code-server.crt
cert-key: /home/xxx/.config/code-server/certs/code-server.key
重启服务
sudo systemctl restart code-server@$USER
导入证书到 Chrome 信任
下载code-server.crt文件,浏览器导入到受信任的根证书颁发机构,重启。