宝塔面板手动更新 code-server 到最新版本教程

内容管家 建站运维评论6字数 1162阅读3分52秒阅读模式

前言

宝塔面板自带的 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)和更多新功能。关键点在于:

  1. 保留宝塔插件的配置文件 config.json
  2. 修复 Nginx 代理配置,添加安全入口支持
  3. 修复目录权限
  4. 不要点击宝塔面板 code-server 插件的"升级"或"修复"按钮
  5. 不需要修改插件目录

这样可以同时享受最新版本和宝塔插件的便捷管理,包括安全入口保护。

参考链接

 
内容管家

发表评论