ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Ubuntu 26.04 部署实战:VMware 虚拟机 + 镜像源 + SSH 配置全流程

Ubuntu 26.04 部署实战:VMware 虚拟机 + 镜像源 + SSH 配置全流程 1. Ubuntu 26.04 部署前先想清楚VMware 虚拟机里到底要装成什么样Ubuntu 26.04 是长期支持版本很多做后端、容器、AI 工具链的朋友会把它装进 VMware 虚拟机当本地开发服务器用。它能做什么一句话给你一台可以随时快照回滚、能远程 SSH 登录、能跑 JDK、Node、Redis、PostgreSQL、Nginx 的完整 Linux 环境。适合谁适合不想动自己主力机系统、又想有一套干净可复现环境的开发者尤其是要跑本地模型服务、写后端接口、做自动化脚本的人。我这次的目标很明确在 VMware 里装好 Ubuntu 26.04把默认镜像源换成国内地址加速配好 SSH 让宿主机能直接连进去再顺手把基础环境校验一遍。整个过程踩过几个坑比如安装阶段 mirror 地址不改会卡在下载、SSH 装完没开机自启、防火墙开了却忘了放行 22 端口。下面按可复制的顺序写你照着敲就行。先说清楚 VMware 侧的准备工作。新建虚拟机时选「典型」客户机操作系统选 Linux、版本选 Ubuntu 64 位。内存建议至少 4GB想跑数据库和 Node 就拉到 8GB磁盘给 40GB 以上选「将虚拟磁盘拆分成多个文件」方便迁移。网络适配器这一步很关键如果你希望宿主机能直接 SSH 进来用 NAT 就行VMware 会分配一个 192.168.x.x 的地址想更省事也可以用桥接让虚拟机和宿主机在同一网段。我一般用 NAT稳定且不依赖路由器。安装镜像启动后语言选中文或英文都行安装类型选「交互式安装」。到了「配置软件源 / mirror」这一步默认的 archive.ubuntu.com 在国内下载会很慢甚至超时导致安装失败。把地址改成https://mirrors.aliyun.com/ubuntu再继续这一步能省掉大量等待时间。分区直接用默认的「使用整个磁盘」不用手动分。用户名密码设一个你记得住的后面 sudo 要用。安装完成后第一次进系统先别急着装软件先确认磁盘有没有未分配空间。打开「磁盘」工具或者用lsblk看一眼如果 VMware 给的磁盘比实际分配的大可以后续用growpart扩容。确认没问题再往下走。整个部署链路的核心就是三件事换源加速、开 SSH 远程、校验环境。下面逐个拆开。2. TaoToken 前置准备给后续 AI 工具链留好接口Ubuntu 26.04 装好之后很多人不只是拿它当普通服务器还会在上面跑 AI 编码工具、Agent、模型对话客户端。这时候你需要一个统一的模型接入入口省得每个工具单独配 key、单独改地址。TaoToken 就是干这个的它提供兼容 OpenAI 风格的 API 地址你把 Base URL 指向它再填上自己的 Key就能在多个工具里复用同一套配置。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 根地址是 https://taotoken.net/api 。注意 API 地址后面不加任何 UTM 参数直接用它作为 Base URL 就行。你需要提前准备好三样东西后面配置任何工具都围绕这三件套配置项值说明Base URLhttps://taotoken.net/api所有兼容 OpenAI 的工具都填这个API Key在控制台生成形如 sk-xxxx注意保密Model ID按需选择比如对话模型、编码模型填工具要求的名称获取 Key 的路径是进控制台找到 API Keys 页面新建一个。如果你只是想在 Ubuntu 里验证模型能不能通用「模型对话」页面直接测最省事如果你打算长期在这台虚拟机上做编码、跑 Agent那更适合用 Coding Plan额度和管理都更集中。文档页有各工具的接入示例遇到不确定的字段去那里对一下。为什么要在部署阶段就提这个因为后面你装完 Node、Git、opencode 这类工具后第一件事往往就是配模型接入。与其到时候手忙脚乱找地址不如现在就把三件套记下来。我试过在虚拟机里同时配 Cline、opencode 和命令行客户端共用同一个 Base URL 和 Key切换工具时只改 Model ID非常省心。有一点要提醒TaoToken 是正规的模型接入服务不是让你去搞什么网络绕行。你只需要在工具配置里填 Base URL 和 Key剩下的它来处理。所有配置都在你本地虚拟机的配置文件里不涉及系统级改动。下面进入具体操作先换源再装 SSH最后校验。3. 可复制配置镜像源替换 SSH 启用 基础环境这一节是全文最核心的部分所有命令都可以直接复制。先做镜像源替换。Ubuntu 26.04 用的是新的ubuntu.sources格式路径在/etc/apt/sources.list.d/ubuntu.sources。先备份再替换sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak sudo sed -i s|http://archive.ubuntu.com/ubuntu|https://mirrors.aliyun.com/ubuntu|g; s|http://security.ubuntu.com/ubuntu|https://mirrors.aliyun.com/ubuntu|g /etc/apt/sources.list.d/ubuntu.sources sudo apt update执行完apt update如果看到 Hit、Get 都指向 mirrors.aliyun.com说明换源成功。如果报错Could not resolve检查虚拟机网络是不是 NAT 没通先ping mirrors.aliyun.com确认。接着更新系统并装常用工具sudo apt update sudo apt upgrade -y sudo apt install -y curl vim然后装 SSH 服务并设为开机自启sudo apt install -y openssh-server sudo systemctl start ssh sudo systemctl enable ssh防火墙用 ufw放行 22 端口再启用sudo apt install -y ufw sudo ufw allow 22/tcp sudo ufw enable sudo ufw reload注意ufw enable会提示可能中断 SSH 连接如果你当前就是通过 SSH 连的先确认 22 已放行再按 y。虚拟机本地操作无所谓。基础环境按需装。JDK 17sudo apt update sudo apt install -y openjdk-17-jdkMavensudo apt install -y maven mvn -versionRedis 并允许外部访问仅本地开发用生产别这么干sudo apt install -y redis-server sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak sudo sed -i s/bind 127.0.0.1 -::1/bind 0.0.0.0/g; s/protected-mode yes/protected-mode no/g /etc/redis/redis.conf sudo systemctl restart redis sudo systemctl enable redis-server sudo ufw allow 6379/tcp sudo ufw reloadNginxsudo apt install -y nginx sudo systemctl restart nginx sudo systemctl enable nginx sudo ufw allow 80/tcp sudo ufw reloadPostgreSQLsudo apt update sudo apt install -y postgresql postgresql-client pg_lsclustersNode.js 24 LTSsudo apt remove -y nodejs npm curl -fsSL https://deb.nodesource.com/setup_24.x | sudo bash - sudo apt install -y nodejs node -v npm -vGitsudo add-apt-repository ppa:git-core/ppa -y sudo apt update sudo apt install -y git git --version如果你要在虚拟机里配 AI 编码工具opencode 可以这样装curl -fsSL https://opencode.ai/install | bash装完后它的配置文件里需要填 Base URL、Key、Model ID 三件套Base URL 用https://taotoken.net/apiKey 从控制台拿Model ID 按你选的模型填。这样这台 Ubuntu 虚拟机就具备了远程开发和模型接入的完整能力。4. 验证请求SSH 连通性 服务状态 模型接口测试配置写完必须验证不然等于没配。先看 SSH 是否在监听sudo systemctl status ssh ss -tlnp | grep 22status显示 active (running)ss能看到 0.0.0.0:22 或 :::22 就对了。然后在宿主机你的 Windows 或 Mac上开终端测试ssh 用户名虚拟机IP虚拟机 IP 用ip addr或hostname -I查NAT 模式下一般是 192.168.x.x。第一次连会提示指纹确认输 yes 再输密码。能进去就说明 SSH 通了。如果连不上先在虚拟机里ping宿主机再检查 ufw 状态sudo ufw status确认 22/tcp 是 ALLOW。服务状态批量检查systemctl is-active ssh nginx redis-server postgresql每个都返回 active 才算正常。Redis 可以用redis-cli ping返回 PONG 验证Nginx 用curl -I http://localhost看是否返回 200PostgreSQL 用sudo -u postgres psql -c \l列出数据库。模型接口验证用 curl 直接打 TaoToken 的 APIcurl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer 你的Key \ -H Content-Type: application/json \ -d { model: 你的ModelID, messages: [{role: user, content: ping}] }返回 JSON 里带choices字段就说明通了。如果返回 401是 Key 不对或没带 Bearer 前缀如果返回 model not found是 Model ID 写错了。这一步通了你后面在 opencode、Cline 里配同样的三件套就不会再出问题。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth部署过程中最容易撞的几个报错我按真实遇到的整理一下。401 Unauthorized模型接口返回这个九成是 Key 问题。检查三处Key 有没有复制全sk- 开头那串、请求头是不是Authorization: Bearer sk-xxx、Key 有没有在控制台被禁用。如果是在工具里配的确认 Base URL 填的是https://taotoken.net/api而不是带别的路径。local proxy failed工具里报这个通常是它想走本地代理但代理没起或者 Base URL 填成了 localhost。把工具配置里的 Base URL 直接改成https://taotoken.net/api不要经过任何本地转发。同时检查虚拟机能不能curl https://taotoken.net/api网络不通先解决 NAT。reading choices 报错 / choices 字段为空一般是返回体不是标准 OpenAI 格式或者 Model ID 填了个不存在的模型。先用第 4 节的 curl 命令单独测确认返回里有choices数组。如果 curl 正常但工具报错多半是工具版本太旧升级一下。OAuth 相关报错有些工具比如 Claude Code 类默认走 OAuth 登录流程但你要用 API Key 接入时得选对模式。在配置里找 API Key / Base URL 选项填上三件套别走 OAuth 授权。如果工具强制 OAuth看它的文档有没有auth.json或环境变量方式把 Base URL 和 Key 写进去。SSH 连不上先sudo ufw status看 22 有没有放行再sudo systemctl status ssh看服务起没起最后确认 VMware 网络模式。NAT 模式下宿主机能连虚拟机但外部机器连不了这是正常的。apt update 报错 Could not resolve换源后域名解析失败检查虚拟机 DNS。可以cat /etc/resolv.conf看 nameserverNAT 模式下一般是 192.168.x.2。如果不对在 VMware 虚拟网络编辑器里恢复默认设置。排障的核心思路是分层先确认网络通不通再确认服务起没起最后确认配置字段对不对。模型接入的排障入口在接入文档里面有各工具的完整字段说明Key 的问题去 API Keys 页面重新生成一个对比测试。6. 后续怎么用把这台虚拟机变成长期开发环境环境搭好只是开始。这台 Ubuntu 26.04 虚拟机接下来可以承担几类活跑本地后端服务、当 Redis/PostgreSQL 的测试库、跑 Node 脚本和自动化任务、作为 AI 编码工具的运行环境。建议装完就打个 VMware 快照命名成「干净环境」以后装崩了直接回滚比重新装快得多。如果你打算长期在这台机器上做编码和 Agent 开发把模型接入统一到一套配置上会省很多事。Base URL 固定用https://taotoken.net/apiKey 放环境变量里别硬编码Model ID 按任务切换。想集中管理额度和用量用 Coding Plan 更合适只是临时验证模型通不通用模型对话页面最快要新建或轮换 Key去 API Keys 页面操作。文档页有各工具的接入模板配新工具时先翻那里。最后给几个实用习惯SSH 配好后可以写个~/.ssh/config别名以后ssh dev就能连ufw 规则改完记得reloadRedis 和 PostgreSQL 的默认配置只适合本地开发别把 0.0.0.0 监听带到公网每次大改配置前先备份原文件我上面每条 sed 命令前都留了.bak这个习惯能救你很多次。环境是自己的稳比快重要。
返回列表