云服务器入门到实战:从 SSH 连接、Linux 命令到项目上云部署的完整路线
云服务器入门到实战:从 SSH 连接、Linux 命令到项目上云部署的完整路线
本文基于 cloud-server.md 展开,结合仓库内 linux.md、docker-deploy-project.md、git.md 等文档,系统讲解云服务器的概念认知、SSH 远程连接、Linux 命令模拟学习,以及从零搭建 Git/Java/Maven/Docker 环境到完成前后端项目打包上线的全流程。读完本文,你可以理解云服务器与本地电脑的关系,掌握通过 SSH 连接云服务器、执行常用 Linux 命令、用脚本一键初始化开发环境,并具备把 Java 项目构建镜像、部署上线的实战能力。
一、云服务器是什么:你互联网上的另一台电脑
云服务器的使用,是每个程序员在编程路上的必备技能。我们所有开发的代码,最终都要部署到云服务器上运行,为用户提供运算能力。包括京东、淘宝、拼多多、滴滴、美团等互联网公司的服务,本质上都是运行在云服务器上的。
1. 与本地电脑的关系
一个直观的理解方式是:云服务器,就是你在互联网上的另一台电脑,随时随地可以访问使用,任意安装和卸载软件。正如 docker-deploy-project.md 中的类比:云服务器可以理解为书桌上摆着的两台电脑中的另外一台,你可以通过手里这台电脑,以 SSH 方式连接那一台电脑,并在上面安装 MySQL、Redis、Ollama 等软件,从而减轻本机的压力——本机只负责代码开发,需要什么资源就连接那一台电脑上的软件即可。
背后的原理是:一些公司把电脑集中起来搭建成了服务器机房,通过提供公网 IP,让用户在购买云服务器后,可以用自己的电脑连接上云服务器,进行软件部署和程序运行。对软件学习来说,云服务器还有一个额外的好处——可以避免 Windows 电脑的兼容问题。
2. 为什么新手觉得它陌生
不少伙伴没怎么使用过云服务器,一方面是没有意识到项目最终是在云服务器上部署的,另一方面是云服务器基本使用 Linux 系统,不像 Windows/Mac 电脑有图形化界面,因此在使用上形成了一道障碍。正如 docker-install.md 所言:做项目不上线,等于吃面不配蒜,效果少一半。云服务器价格非常便宜,哪怕用一台 2c2g 的入门配置,也可以部署一套 Docker、MySQL、Redis、SpringBoot 单体项目,替代本地电脑的环境部署。
仓库中 docker-install.md 对选购给出了明确建议:2c2g 可部署单体项目;2c4g 可部署分布式微服务项目(docker、mysql、redis、rabbitmq、xxl-job、SpringBoot);2c8g 可承载更多微服务项目。购买时推荐选择 CentOS 7.9 系统镜像。
二、课程概览:可视化 + 模拟体验的入门路径
针对新手的学习障碍,小傅哥准备了一套基础的免费教程,通过在线网站提供图形化界面 + 模拟体验的方式,教会小白伙伴上手云服务器。教程的原始地址记录在 cloud-server.md 中,会陆续更新在线课程(更新内容会在公众号「bugstack虫洞栈」发布通知)。
通过这套教程能学到什么
教程采用在线演示体验、互动式学习方式,以及一键安装脚本,让复杂的云服务器操作变得简单和易于理解。覆盖的能力点包括:
- 理解云服务器的概念、选择、配置、管理,以及通过 shell 脚本完成自动化的初始化环境操作;
- 在云服务器部署 Git、Java、Maven 环境,可以通过云服务器完成项目的构建;
- Docker 容器化技术,完成项目的构建镜像、操作部署等;
- 远程连接与安全,学习 SSH 连接云服务器和 Linux 命令操作云服务器;
- 版本控制与协作,可以在云服务器通过 Git 检出项目进行维护使用;
- 部署与运维,以代码开发、Git Push、Git Pull、mvn clean install、docker 一系列命令,完成项目的打包和上线。
这套教程的特色在于完全可视化学习、注重理论与实践,不仅让读者了解云服务器的基本概念,更重要的是通过交互式演示和自动化脚本快速上手,并在实际项目中应用这些技术。这套教程与仓库中 linux.md、docker-deploy-project.md 等文档所描述的"云服务器搭建开发环境 + 项目构建部署"完整链路一一对应,可以直接对照学习。
三、第1节实操:通过 SSH 连接云服务器
第一节教程《云服务器,是什么?》的核心,就是让你直观地理解"云服务器相对于本地电脑,其实就等同于你的另外一个电脑",并且提供了模拟连接——可以在线体验通过 SSH 连接云服务器,并执行 Linux 脚本运行。相关的模拟命令已经写好了执行动作和说明,很适合小白伙伴学习。
1. 建立 SSH 连接:四个要素
点击建立 SSH 连接后,会弹出 SSH 连接操作窗口,核心信息是四项:
- IP:云服务器的公网地址;
- 用户名:登录账户(如 root);
- 密码:登录密码;
- 端口号:SSH 服务端口(默认 22)。
这四项信息,就是你在获得一台真实云服务器后可以拿到的连接信息。在实际使用云服务器时,也是通过同样的信息完成连接操作。模拟环境的好处是:没有云服务器的伙伴,也能随时体验云服务器操作。
2. 体验登录:点击命令,查看执行结果
考虑到很多伙伴不太熟悉 Linux 命令,教程做了模拟操作:点击命令之后,可以看到执行结果,以及该命令的用途说明。此外还加入了 Git、Maven、Docker 常见命令的学习,覆盖了云服务器上最常用的几类工具。通过这套模拟学习,对云服务器的使用基本可以建立起操作认知——后续看到要执行的命令,也能理解整个操作过程。
模拟体验区加入的常用命令,与仓库 linux.md 中实战使用的命令完全一致,包括:
ls # 查看文件列表
mkdir # 创建文件夹
chmod +x # 给文件授予执行权限
rm -rf # 删除文件夹(危险命令,慎用!)
cat /etc/profile # 查看环境配置文件
vim /etc/profile # 编辑环境配置文件
git clone https://xxx.git # 检出项目
git branch # 列出项目分支
git checkout master # 检出 master 分支
docker-compose -f xxx.yml up -d # 启动容器编排
3. 配套的 SSH 客户端工具
从模拟环境走向真实环境时,需要选择一款顺手的 SSH 客户端。仓库 tool.md 整理了一批常用工具:nuoshell(Mac 平台免费)、termius(支持电脑和移动设备,含 SFTP 功能,个人使用挺稳又好用)、WindTerm(跨平台免费)、FinalShell、Xterminal、PuTTY 等。其中 termius 自带 SFTP,可以方便地上传文件,是 linux.md 中推荐的环境上传方式。
四、环境搭建:把云服务器打造成开发环境
模拟学习之后,就可以在真实云服务器上动手了。仓库 linux.md 提供了一套完整的"云服务器开发环境"搭建方案:通过执行脚本的方式安装和卸载 Java、Maven,并通过 Docker Compose 安装 Redis、MySQL。这套方案的工程(xfg-dev-tech-linux)提供了 git、java、maven、redis、mysql 的环境安装,既可以本地连接云服务器使用,也可以在云服务器拉取项目进行构建操作。
1. 系统选择与初始化
在你首次购买和设置云服务器时,它会让你选择需要安装的系统(也可以重置重新安装)。docker-deploy-project.md 推荐 CentOS 7.6、7.9 或 Ubuntu 24+,这两个系统都有现成的一键安装脚本,可以非常方便地把 Docker 及常用软件全部安装完成。
初始化时,把 dev-ops 文件夹上传到云服务器上(注意上传到 / 根目录,不是 root 下),之后就可以执行下面的环境安装操作了。
2. 安装 Git
CentOS:
sudo yum install git
Ubuntu/Debian:
apt-get install git
安装后通过 git --version 查看版本确认安装成功。
3. 安装 Java JDK
方式一:脚本安装(进入 java 目录,赋予执行权限后执行):
cd /dev-ops/java
chmod +x install-java.sh
./install-java.sh
- 验证:
java -version此时会输出 Java 的版本; - 提示:如果未输出 java,可以手动执行
source /etc/profile; - 卸载:如果不需要 Java 环境了,可以同样方式执行
./remove-java.sh。
方式二:手动安装:
- 解压 jdk:
tar -zxvf jdk-8u202-linux-x64.tar.gz - 修改解压后的文件名:
mv jdk1.8.0_202 jdk-8u202 - 编辑环境配置文件:
vim /etc/profile(进入后输入i开始编辑,编辑后按esc输入:wq退出) - 在文件末尾追加以下配置并保存退出:
export JAVA_HOME=/software/jdk-8u202
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
- 生效配置:
source /etc/profile - 验证:
java -version,出现的版本是自己下载的版本,则安装成功。
如果你有安装多次,配置文件中 Java、Maven 配置有多份,可以删掉只保留一份。
4. 安装 Maven
cd /dev-ops/maven
chmod +x install-maven.sh
./install-maven.sh
- 验证:
mvn -version此时会输出 maven 的版本; - 提示:如果未输出 Maven,可以手动执行
source /etc/profile; - 卸载:如果不需要 Maven 环境了,可以同样方式执行
./remove-maven.sh。
对于 Ubuntu 系统,也可以直接通过
sudo apt update && sudo apt install openjdk-8-jdk、apt install maven完成安装。安装完成后注意替换conf/settings.xml为带有阿里云 Maven 镜像的配置,国内构建速度会快很多。
5. 安装 MySQL、Redis(Docker Compose)
cd /dev-ops
docker-compose -f docker-compose-environment.yml up -d
docker-compose-environment.yml 是负责安装 MySQL、Redis 的编排文件。安装完成后:
- 通过 Portainer(容器管理面板,默认 9000 端口)可以看到安装的容器;
- 13306、16379、8081、8899 这几个端口需要在云服务器安全组中开放,本地才能访问;
- 实际自己使用的时候,MySQL 数据库的密码要配置得强一些;
- 可以把自己的项目建库建表 SQL 放到
mysql/sql文件夹下,容器初始化时自动执行。
五、版本控制与协作:Git 检出与 SSH 秘钥配置
云服务器上维护项目,离不开 Git。仓库 git.md 给出了完整的配置流程:不要直接下载 zip 包(zip 只有当前分支代码,打开也没有 Git 标识,不能进行 pull、push、checkout 操作),而是配置 SSH 秘钥后通过 git clone 检出。
1. 配置 Git 账户
git config --global user.name "fuzhengwei"
git config --global user.email "184172133@qq.com"
用户名和邮箱,更换为你代码库注册使用的名称和邮箱。
2. 创建 SSH 秘钥
ssh-keygen -t rsa -C "184172133@qq.com"
一路回车即可生成密钥对。私钥保存在 /root/.ssh/id_rsa,公钥保存在 /root/.ssh/id_rsa.pub。
3. 获取并配置公钥
cat /root/.ssh/id_rsa.pub
复制公钥内容,到代码托管平台的 SSH Keys 配置页面(gitcode、github 等平台都有对应入口)填充即可。配置后即可免密检出。需要注意的是:gitcode.com、github.com 通过账号密码方式克隆时,密码需要填写访问令牌(Access Token),而不是登录密码。
4. 检出与日常操作命令
# 默认检出(master 分支)
git clone git@github.com:fuzhengwei/openai-code-review.git
# 指定分支检出
git clone -b 240720-xfg-init-project git@github.com:fuzhengwei/openai-code-review.git
# 日常操作
git branch # 查看当前工程分支
git branch -r # 查看远程分支列表
git pull # 拉取分支最新代码
git push # 推送本地变更代码
git fetch # 获取远程仓库最新分支变动
git merge origin/master # 将远程分支代码合并到本地分支
六、部署与运维:从代码到上线
环境就绪后,就可以完成项目的打包和上线了。linux.md 以大营销平台项目(前后端)为例,演示了完整的构建部署流程,docker-deploy-project.md 则总结了三种构建镜像方案的复杂度对比:本地打包 Jar + 云上构建镜像(2 星)、云上打包 Jar + 云上构建镜像(3 星)、本地打包 + 本地构建 + 推送阿里云镜像仓库 + 云上拉取(4 星)。
1. 后端:克隆、构建、打镜像
# 克隆项目(可先 mkdir github 建目录)
git clone https://gitcode.net/KnowledgePlanet/big-market/big-market.git
# 进入项目执行构建
cd big-market/
mvn clean install
# 进入应用模块,执行构建脚本打包 Docker 镜像
cd big-market-app/
chmod +x build.sh
./build.sh
mvn clean install 会按 Reactor 顺序依次构建 types、domain、api、trigger、infrastructure、app 等模块,最终 build.sh 基于项目下的 Dockerfile 构建出镜像(如 fuzhengwei/big-market-app:1.0),通过 docker images 可以查看。
2. 前端:切分支、打镜像
cd big-market-front/
git branch # 检出后若没有 Dockerfile,先检查分支
git checkout main # 切换到 main 分支
chmod +x build.sh
./build.sh
前端基于 Node.js 构建(Dockerfile 使用 node:18-alpine 基础镜像,通过 yarn 安装依赖并构建),产出如 fuzhengwei/big-market-front-app:1.4 的镜像。若构建失败提示 https://registry-1.docker.io/v2/: net/http: request canceled,则是拉取 Docker Hub 镜像超时,可以通过配置镜像加速器(如阿里云镜像、中科大镜像等 registry-mirrors)后重启 Docker 解决。
3. 部署:docker-compose 一键启动
构建出镜像后,按照自己的项目编写 Docker Compose 编排文件部署即可。核心要点包括:端口映射(如 8091:8091、3000:3000)、环境变量注入(数据库连接、Redis 地址、时区 TZ=PRC 等)、日志卷挂载与网络配置:
version: '3.8'
services:
big-market-app:
image: fuzhengwei/big-market-app:1.0
container_name: big-market-app
restart: always
ports:
- "8091:8091"
environment:
- TZ=PRC
- SERVER_PORT=8091
- APP_CONFIG_API_VERSION=v1
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=123456
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/big_market?serverTimezone=UTC&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai
- SPRING_HIKARI_POOL_NAME=Retail_HikariCP
- REDIS_SDK_CONFIG_HOST=redis
- REDIS_SDK_CONFIG_PORT=6379
volumes:
- ./log:/data/log
networks:
- my-network
big-market-front-app:
container_name: big-market-front-app
image: fuzhengwei/big-market-front-app:1.4
restart: always
networks:
- my-network
ports:
- 3000:3000
healthcheck:
test: [ "CMD", "wget", "--spider", "-q", "http://0.0.0.0:3000/" ]
interval: 1m
timeout: 10s
retries: 3
networks:
my-network:
driver: bridge
执行 docker-compose -f docker-compose-app.yml up -d 即可完成部署,之后访问服务就能看到最终效果。完整的实战记录可参考 linux.md 与 docker-deploy-project.md。
七、进阶:AI 时代的云服务器运维
学会传统命令操作之后,仓库还提供了两条"AI + 云服务器"的进阶路线,进一步降低运维门槛:
1. AI Shell 命令行工具
仓库 ai-ssh-opencode.md 介绍了 ai ssh 命令行工具(如 opencode),可以安装到 Mac、Windows、Linux 上,通过终端直接操作系统——包括 IntelliJ IDEA 自带的 terminal。这类工具的出现,让 ai 的使用不只局限在对话提问和辅助编码,而是让操作系统本身具备 AI 能力。在云服务器上安装后,可以用自然语言让它帮你构建项目、安装软件、巡检系统、编写文件,对不熟悉命令的小白伙伴尤其友好。仓库为此提供了适配国内网络的一键安装脚本,执行 ./terminal.sh 选择安装即可。
2. WaLiSSH:AI SSH 智能运维助手
更进一步,仓库 walissh.md 记录了小傅哥自研的 WaLiSSH 项目——一款本地运行的 AI SSH 运维助手,以 WaLiCode 的架构设计为内核,使用 Spring AI + Google ADK + Tauri(+Typescript),涵盖 Agent WorkFlow、上下文管理、意图识别(+LLM)、混合窗口裁剪、动态提示词等核心设计,构建一整套 AI Agent 智能体服务工具。
在 第1节:AI Shell 连接云服务器.md 中演示了它的核心体验:用自然语言描述要做的事(如"连接到 47.98.123.45 服务器""查看系统版本""检查磁盘使用情况"),AI 自动生成并执行命令;执行前有确认机制,危险操作自动拦截。除了基本的 SSH + SFTP 能力外,还可以扩展 mcp、skills 技能,为服务器做日志分析、系统健康度巡检、内存泄漏排查等智能化运维管理。这种"穿插在云服务器上的智能机器人",正在逐步替换传统的 SSH 工具。
结语
从"云服务器是互联网上的另一台电脑"的认知建立,到通过模拟环境体验 SSH 连接与 Linux 命令,再到真实云服务器上搭建 Git、Java、Maven、Docker 环境并完成前后端项目的构建与上线部署,这是一条完整且可落地的云服务器学习路线。本文提到的所有环境脚本、部署编排和命令细节,都可以在仓库 cloud-server.md、linux.md、docker-deploy-project.md、git.md 等文档中找到原始出处,建议结合源码文档边学边练。学会云服务器,你才真正拥有了把代码变成线上服务的能力。