前言
宝塔面板自带的 code-server 插件版本更新往往不够及时,导致我们无法使用最新功能。本文将详细介绍如何手动将宝塔面板中的 code-server 更新到 GitHub 上的最新版本,同时保持宝塔插件配置正常工作,包括安全入口。
问题背景
宝塔面板的 code-server 插件内置的版本号是写死的(例如 4.16.1),官方更新不及时。而 GitHub 上 code-server 最新版本已经是 4.109.2,两者相差近百个版本。
关于宝塔插件目录
/www/server/panel/plugin/code_server 是宝塔插件的安装目录,我们不需要对其进行任何修改。这个目录包含的是插件的管理脚本(如启动、停止、升级等),我们只需要更新 code-server 本体即可,插件的启动脚本会自动使用更新后的版本。
需要注意的是,不要在宝塔面板中点击"升级"或"修复"按钮,否则插件会重新下载旧版本并覆盖我们的更新。
更新步骤
1. 相关路径说明
/www/server/code-server- code-server 本体目录(需要更新的部分)/www/server/code-server/config.json- 宝塔插件配置(包含安全入口和密码,不要删除)/www/server/panel/vhost/nginx/code-server.conf- Nginx 配置文件/www/server/panel/plugin/code_server- 宝塔插件目录(不需要修改)
2. 停止 code-server 服务
sudo /etc/init.d/code-server stop
3. 下载最新版本
cd /www/server/code-server
sudo wget https://github.com/coder/code-server/releases/download/v4.109.2/code-server-4.109.2-linux-amd64.tar.gz
4. 解压并替换
sudo tar -xzf code-server-4.109.2-linux-amd64.tar.gz
sudo rm -rf code-server
sudo mv code-server-4.109.2-linux-amd64 code-server
5. 修复 Nginx 配置(支持安全入口)
修改 /www/server/panel/vhost/nginx/code-server.conf:
server {
listen 28080;
server_name localhost;
# 安全入口路径(从宝塔插件配置中获取)
location /你的安全入口/ {
rewrite ^/你的安全入口/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:7713/;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass_header Authorization;
}
# 默认路径拒绝访问
location / {
return 403;
}
access_log /www/server/code-server/access.log;
error_log /www/server/code-server/error.log error;
}
获取安全入口:查看 /www/server/code-server/config.json 中的 admin_path 字段。
6. 修复目录权限
sudo chown -R codeserver:codeserver /www/server/code-server
7. 重启服务
sudo /etc/init.d/code-server start
sudo nginx -s reload
8. 验证版本
/www/server/code-server/code-server/bin/code-server --version
输出:
4.109.2 9184b645cc7aa41b750e2f2ef956f2896512dd84 with Code 1.109.2
宝塔插件配置说明
宝塔插件的配置文件位于 /www/server/code-server/config.json,包含以下关键配置:
{
"port": "28080",
"outer_address": "http://你的IP:28080/安全入口/",
"admin_path": "安全入口路径",
"config": {
"bind-addr": "127.0.0.1:7713",
"auth": "password",
"password": "你的密码",
"user-data-dir": "/www/server/code-server/user-data-dir",
"extensions-dir": "/www/server/code-server/user-data-dir/extensions"
}
}
重要:这个配置文件一定要保留,不要删除!安全入口(admin_path)和密码都保存在这里。
访问地址
更新后的访问地址格式为:
http://你的IP:28080/安全入口/
常见问题
Q1: 更新后无法登录,提示 401 Unauthorized
这是因为新版本的权限问题。执行:
sudo chown -R codeserver:codeserver /www/server/code-server
Q2: 安全入口不生效
确保 Nginx 配置中正确设置了安全入口路径,并且使用 rewrite 规则将路径重写掉。参考上文第5步配置。
Q3: 访问根路径也显示登录页面
这是正常的。配置安全入口后,只有通过 /安全入口/ 路径才能访问,其他路径会被拒绝(返回403)。
Q4: 点击宝塔面板 code-server 插件的"升级"或"修复"按钮后版本变回去了
因为升级/修复按钮会调用插件脚本,它会重新下载并安装旧版本(4.16.1)。请不要点击升级或修复按钮,按照本文手动更新即可。
Q5: 需要动 /www/server/panel/plugin/code_server 目录吗?
不需要。这个目录是宝塔插件的管理脚本,我们只需要更新 code-server 本体,插件的启动脚本会自动使用新版本。
总结
通过手动更新 code-server,我们可以使用最新版本的 VS Code(1.109.2)和更多新功能。关键点在于:
- 保留宝塔插件的配置文件
config.json - 修复 Nginx 代理配置,添加安全入口支持
- 修复目录权限
- 不要点击宝塔面板 code-server 插件的"升级"或"修复"按钮
- 不需要修改插件目录
这样可以同时享受最新版本和宝塔插件的便捷管理,包括安全入口保护。


评论