云服务器折腾记
1.1 配置终端
我使用的终端为 Windows Terminal。安装方法:Microsoft Store → 搜索 Windows Terminal。
使用教程:打造一个漂亮的WINDOWS TERMINAL | PowerShell终端窗口美化 | Oh-My-Posh - bilibili
1、打开 PowerShell,输入以下指令,生成 GUID。
'{'+[guid]::NewGuid().ToString()+'}'2、打开 Windows Terminal,按住 Shift 键,同时点击「设置选项」,进入终端配置文件 settings.json。
3、在 profiles → list 添加如内容。
{
"colorScheme": "Nord",
"commandline": "ssh root@IP", // 公网 IP
"guid": "{98d7f489-6b01-4e0e-92ac-f2a3ecf38daf}", //前面生成的 GUID
"hidden": false,
"name": "Tencent Host" // 主机名
},
然后就可以通过新建标签页,选择 Tencent Host,输入登录密码,连接云服务器。如下图:

1.2 配置服务器
1.2.1 重装系统
使用 「一键 DD 脚本」重装系统
为什么要 DD 系统?
- 定制需求:有些 VPS 服务商可能提供的是定制版的系统,可能与用户的需求不完全匹配,或者缺少用户需要的特定配置。通过 DD 系统,用户可以选择并安装他们需要的操作系统版本和配置。
- 系统选择自由:用户可能希望安装不同于服务商提供的默认操作系统的版本,或者希望使用其他 Linux 发行版或 Windows 等操作系统。DD 系统使用户能够自由选择和安装他们想要的系统。
- 更强的控制权:使用 DD 系统可以更灵活地进行系统配置和定制,而无需依赖服务商的面板。这使得用户能够更好地掌握系统的管理和维护。
- 规避系统安装限制:一些 VPS 服务商可能限制了系统的重装次数,超过限制可能需要支付额外费用。通过 DD 系统,用户可以规避这些限制,因为它不依赖于服务商提供的系统安装界面。
- 迅速部署标准化环境:DD 系统可以帮助用户快速部署一个符合其标准的系统环境,而不受服务商的预设限制。这对于需要频繁部署相似环境的用户而言是非常有用的。
leitbogioro/Tools: Something about tools (github.com)
1、获取 Root 权限
sudo su2、下载 DD 脚本
# 国外
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
# 国内
curl -O https://raw.fgit.cf/bin456789/reinstall/main/reinstall.sh3、使用
bash reinstall.sh centos 7|8|9 (8|9 为 stream 版本)
debian 10|11|12
ubuntu 20.04|22.04
# 不输入版本号,则安装最新版
可选参数: --ci 强制使用云镜像
# 我的选择
bash reinstall.sh debian --ci
bash <(wget --no-check-certificate -qO- 'qiu.sh/dd') -d 12 -v 64 -a --mirror 'http://mirrors.cloud.tencent.com/debian/' -p 5k.sb
关于 DD 脚本的使用,详细见 @bin456789 大佬的脚本,地址一键重装 / 一键 dd / One-click Reinstall OS 。
1.2.2 更新软件包
sudo -i # 切换到 root 用户
# 安装常用软件
apt install wget git curl vim -y
apt update -y # 获取最新的软件包信息
apt upgrade # 安装可用的软件包更新
选择 keep …,回车,更新完毕。
1.2.3 修改 SSH 端口
一般情况,VPS 的 SSH 端口默认为 22,不安全,需要自定义 SSH 端口。方法如下。
执行
vim /etc/ssh/sshd_config,编辑 sshd_config 文件。找到Port,后面添加端口号。# 大于 1024 小于 65535 的整数 Port 9527执行
systemctl restart sshd,重启 OpenSSH。在 VPS 控制台添加端口号为 9527的防火墙规则。
在使用的终端中把主机的 SSH 断后改为 9527。如果是按照我前文方法配置的 Windows Terminal,修改如下。
{ "colorScheme": "Nord", "commandline": "ssh root@IP -p 9527", // 公网 IP "guid": "{98d7f489-6b01-4e0e-92ac-f2a3ecf38daf}", //前面生成的 GUID "hidden": false, "name": "Tencent Host" // 主机名 },
1.2.4 密钥登录
使用密码登录服务器麻烦且不安全。推荐使用密钥登录。
1、生成密钥
打开 Git Bash,输入以下代码,
ssh-keygen -t rsa -f ~/.ssh/这里是新密钥名称 -C "注释"
# 示例
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_host -C "Host SSH"2、获取公钥内容
进入 C:\Users\seeyuer\.ssh 路径,打开刚刚生成的 id_rsa_host.pub 公钥文件,复制公钥内容。
Vim 使用请看下方链接内容。
3、编辑authorized_keys
终端登录服务器,进入 .ssh 文件夹内。如果没有该文件夹,使用 mkdir 命令创建,并使用 vim 创建并编辑authorized_keys 文件。
cd .ssh
vim authorized_keys
# mkdir .ssh
# touch authorized_keys4、编辑文件/etc/ssh/sshd_config
vim /etc/ssh/sshd_config
# 去掉下面两行代码的注释
# .ssh/authorized keys2 删除
#PubkeyAuthentication yes
#AuthorizedKeysFile.ssh/authorized keys .ssh/authorized keys2
# yes 改为 no
PasswordAuthentication yes
# 示例
PubkeyAuthentication yes
AuthorizedKeysFile.ssh/authorized keys
PasswordAuthentication no
# 注意只有当后面测试 SSH 密钥登录成功后,才能将 PasswordAuthentication 设为 no。5、执行以下命令,重启 OpenSSH
systemctl restart sshd6、测试 SSH 密钥登录
在本地终端中运行以下命令:
ssh -i ~/.ssh/id_rsa username@your_server_ip
# 示例
ssh -i ~/.ssh/id_rsa_host root@IP
# 如果更改了 SSH 端口号,示例如下:
ssh -i ~/.ssh/id_rsa_host root@IP -p 9527这会使用新生成的密钥进行连接。如果一切设置正确,你将无需输入密码直接登录到服务器。

Windows Terminal 新建标签页,选择 Tencent Host,如果出现如下情况,
root@IP: Permission denied (publickey).
[已退出进程,代码为 255 (0x000000ff)]
现在可以使用Ctrl+D关闭此终端,或按 Enter 重新启动。修改终端配置文件,如下:
{
"colorScheme": "Nord",
// "commandline": "ssh root@IP",
"commandline": "ssh -i ~/.ssh/id_rsa_host root@IP", // 公网 IP
"guid": "{98d7f489-6b01-4e0e-92ac-f2a3ecf38daf}", //前面生成的 GUID
"hidden": false,
"name": "Tencent Host" // 主机名
},1.1.5 修改登录提示信息
登录服务器后,显示信息如下图。看起来杂乱,我做了如下修改。

1、修改绿框部分
使用 vim /etc/update-motd.d/10-uname 修改 10-uname 文件。修改如下。
#!/bin/sh
uname -snrvm # 注释掉2、修改橙框部分
使用 vim /etc/motd 编辑 motd 文件。如果希望显示效果如下代码所示,去 艺术字符生成_英文数字在线转ASCII工具 ,输入字符,选择字体为 ANSI Shadow。
==========================================================================================
███████╗███████╗███████╗ ██╗ ██╗██╗ ██╗███████╗ ██╗ ██╗ ██████╗ ███████╗████████╗
██╔════╝██╔════╝██╔════╝ ╚██╗ ██╔╝██║ ██║██╔════╝ ██║ ██║██╔═══██╗██╔════╝╚══██╔══╝
███████╗█████╗ █████╗ ╚████╔╝ ██║ ██║█████╗ ███████║██║ ██║███████╗ ██║
╚════██║██╔══╝ ██╔══╝ ╚██╔╝ ██║ ██║██╔══╝ ██╔══██║██║ ██║╚════██║ ██║
███████║███████╗███████╗ ██║ ╚██████╔╝███████╗ ██║ ██║╚██████╔╝███████║ ██║
╚══════╝╚══════╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝
SeeYue's Blog:https://blog.seeyue.top/
==========================================================================================
╔════════════════════════════════════════════════════════════════════════════════════════════╗
║ ███████╗███████╗███████╗ ██╗ ██╗██╗ ██╗███████╗ ██╗ ██╗ ██████╗ ███████╗████████╗ ║
║ ██╔════╝██╔════╝██╔════╝ ╚██╗ ██╔╝██║ ██║██╔════╝ ██║ ██║██╔═══██╗██╔════╝╚══██╔══╝ ║
║ ███████╗█████╗ █████╗ ╚████╔╝ ██║ ██║█████╗ ███████║██║ ██║███████╗ ██║ ║
║ ╚════██║██╔══╝ ██╔══╝ ╚██╔╝ ██║ ██║██╔══╝ ██╔══██║██║ ██║╚════██║ ██║ ║
║ ███████║███████╗███████╗ ██║ ╚██████╔╝███████╗ ██║ ██║╚██████╔╝███████║ ██║ ║
║ ╚══════╝╚══════╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ║
║ SeeYue's Blog:https://blog.seeyue.top/ ║
╚════════════════════════════════════════════════════════════════════════════════════════════╝
==============================================================================================
███████╗███████╗███████╗ ██╗ ██╗██╗ ██╗███████╗ ██╗ ██╗ ██████╗ ███████╗████████╗
██╔════╝██╔════╝██╔════╝ ╚██╗ ██╔╝██║ ██║██╔════╝ ██║ ██║██╔═══██╗██╔════╝╚══██╔══╝
███████╗█████╗ █████╗ ╚████╔╝ ██║ ██║█████╗ ███████║██║ ██║███████╗ ██║
╚════██║██╔══╝ ██╔══╝ ╚██╔╝ ██║ ██║██╔══╝ ██╔══██║██║ ██║╚════██║ ██║
███████║███████╗███████╗ ██║ ╚██████╔╝███████╗ ██║ ██║╚██████╔╝███████║ ██║
╚══════╝╚══════╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝
SeeYue's Blog:https://blog.seeyue.top/
==============================================================================================3、去掉红框部分
使用 vim /etc/ssh/sshd_config 修改 sshd_config 文件。修改如下。
# 去掉注释,yes 改为 no
#PrintLastLog yes执行 systemctl restart sshd,重启 OpenSSH。
4、增加登录前提示信息
- /etc/issue:控制本地终端密码登录时的欢迎信息。
- /etc/issue.net:控制本地终端密钥登录时显示的欢迎信息。
使用 vim /etc/issue 修改 10-uname 文件。修改如下。
Debian GNU/Linux \n \l # 删除
Welcome to Debian! # 添加使用 vim /etc/ssh/sshd_config 修改 sshd_config 文件。修改如下。
# no default banner path
#Banner none
# 取消 banner 注释,none 改为 /etc/issue执行 systemctl restart sshd,重启 OpenSSH。
5、增加当前登录时间提示
使用 vim /etc/profile 修改 profile 文件。代码末尾添加如下代码。
echo "Last login: $(date '+%Y.%m.%d %H:%M:%S')"经历以上修改,登录界面显示如下:

1.3 安装面板
作为 Linux 小白,我更喜欢可视化操作。我使用的面板是 1Panel。安装了面板,我就可以在面板里修改文件,不需要再使用 Vim 💡工具编辑文件。
地址:1Panel - 现代化、开源的 Linux 服务器运维管理面板
安装命令
# CentOS
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
# Ubuntu
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
# Debian
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh安装过程不必多说,按着提示一步步来即可。安装教程:【1Panel功能演示视频】1. 安装部署及应用管理 - bilibili。
1.3 配置 Zsh
Zsh(Z Shell)是一款强大、高度可定制的 Unix shell,它在 bash 的基础上进行了扩展和改进。Zsh 提供了丰富的功能,包括强大的自动补全、主题和插件支持、直观的语法、多目录管理等。
为什么使用 Zsh?
- 更强大的自动补全: zsh 提供更强大和智能的自动补全功能。它能够根据你的输入和历史记录预测你可能要输入的命令或参数,提高了工作效率。
- 更丰富的主题和插件: zsh 提供丰富的主题和插件支持,可以轻松地定制外观和功能。这使得用户能够更容易地个性化他们的 shell 环境。
- 更直观的语法: zsh 在语法和命令编辑方面相对于 bash 更直观。例如,zsh 允许使用通配符进行模糊匹配,并提供更多的快捷键和操作符。
- 更友好的提示: zsh 提供更友好和详细的提示信息,帮助用户更好地理解发生了什么。
1、查看 shell
# 判断当前使用 shell
echo $SHELL
# 统计服务器 shell 种类
cat /etc/shells2、下载 zsh
# Debian/Ubuntu
sudo apt install zsh
# CentOS
sudo yum install zsh3、使用 Zsh
chsh -s /bin/zsh重启终端,输入 echo $SHELL,即可看见当前使用 shell 为 Zsh。
1.4 配置 Oh My Zsh
Zsh 框架、插件、主题和教程的集合:unixorn/awesome-zsh-plugins
1.4.1 下载与主题使用
Zsh 的功能极其强大,但配置过于复杂,所以推荐使用 Oh My Zsh 管理 Zsh 配置。它具有以下优点。
- 简化配置: Oh My Zsh 提供了一套简单而强大的配置系统,使得用户能够轻松地配置和个性化他们的 Zsh 环境。通过简单的命令和别名,用户可以自定义提示符、插件、主题等。
- 丰富的插件系统: Oh My Zsh 提供了一个强大的插件系统,允许用户轻松地扩展其 shell 功能。有许多可用的插件,涵盖了从语法高亮到版本控制集成等各种方面。
- 强大的主题支持: Oh My Zsh 包含许多漂亮和实用的主题,用户可以选择使用它们或者根据自己的喜好创建自定义主题。主题可以使提示符更具吸引力,并提供有关当前环境的有用信息。
- 易于安装和卸载: 安装 Oh My Zsh 很简单,只需运行一行命令即可。卸载也很容易,因为 Oh My Zsh 只是一个位于用户主目录的文件夹。这使得试用 Oh My Zsh 变得非常简便。
- 自动更新和升级: Oh My Zsh 提供了简单的命令,用于更新和升级本身以及其安装的插件。这使得保持 Zsh 和相关工具的最新版本非常容易。
- 语法高亮和错误提示: 提供语法高亮和错误提示,使得在输入命令时更容易发现和纠正错误。
1、下载 Oh My Zsh
# 国外
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 国内
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
# 卸载
uninstall_oh_my_zsh2、设置 Oh My Zsh 主题
主题列表:Themes · ohmyzsh/ohmyzsh Wiki (github.com)
以 ys 主题举例,说明如何更换主题。
vim ~/.zshrc,打开 .zshrc 文件,找到 ZSH_THEME,属性值改为ys。- 执行
source ~/.zshrc,重载配置。 - 主题设置为:
ZSH_THEME="random"。每次打开终端时,主题都是随机的。
1.4.2 Powerlevel10k 配置
我使用的主题是 Powerlevel10k。这是一个专为 Zsh 设计的主题,注重速度、灵活性和即插即用的体验。
地址:romkatv/powerlevel10k: A Zsh theme (github.com)
1、Powerlevel10k 安装
安装推荐的字体。
- Powerlevel10k 使用了图标,需要安装 nerd font。
- Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
- 官方推荐使用 MesloLGS NF 。
- 在终端选择使用 MesloLGS NF 字体。
安装 Powerlevel10k 主题。
# 国外 git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k #国内 git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k在
~/.zshrc中,设置ZSH_THEME="powerlevel10k/powerlevel10k"。使用
exec zsh重新启动 Zsh。如果配置向导没有自动启动,请输入
p10k configure配置 Powerlevel10k 主题。
2、Powerlevel10k 卸载
.zshrc从文件中移除 Powerlevel10k 配置vim ~/.zshrc # .zshrc 文件顶部 if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # .zshrc 文件尾部 [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh # 代码注释可删可不删 # 改为 Zsh 自带主题 ZSH_THEME="powerlevel10k/powerlevel10k"从
~/.zshrc、~/.zpreztorc和~/.zimrc文件中移除所有对 powerlevel10k 的引用。这些引用可能在你安装 Powerlevel10k 时手动添加的。如果需要提醒,可参考安装说明。验证
~/.zshrc、~/.zpreztorc和~/.zimrc中是否不再包含对 “p10k” 和 “powerlevel10k” 的任何引用。grep -E 'p10k|powerlevel10k' ~/.zshrc ~/.zpreztorc ~/.zimrc 2>/dev/null输出为空,则表明 powerlevel10k 配置已完全移除。
删除 Powerlevel10k 的配置文件。这个文件是由配置向导创建的,可能包含你自己手动编辑的内容。
# 查看 vim ~/.p10k.zsh # 删除 rm -f ~/.p10k.zsh删除 Powerlevel10k 的源文件。这些文件在你安装 Powerlevel10k 时下载的。
rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k执行
exec zsh重新启动 Zsh。删除 Powerlevel10k 缓存文件。
rm -rf -- "${XDG_CACHE_HOME:-$HOME/.cache}"/p10k-*(N) "${XDG_CACHE_HOME:-$HOME/.cache}"/gitstatus
3、Powerlevel10k 升级
执行以下命令,拉取代码。
git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull执行
exec zsh重新启动 Zsh。
1.4.3 插件配置
Oh My Zsh 自带了很多插件,但默认不启用。
插件地址:ohmyzsh/plugins · ohmyzsh/ohmyzsh (github.com)
使用方法
- 打开
.zshrc,找到plugins属性。
# () 输入插件名称,多个插件空格或换行隔开
plugins=(git)- 执行
exec zsh重新启动 Zsh。
插件推荐
1、Git
提供与 Git 相关的别名和快捷方式,方便 Git 命令的使用。下面是部分 Git 别名。
| 别名 | 命令 | 别名 | 命令 |
|---|---|---|---|
g | git | ghh | git help |
ga | git add | gl | git pull |
gb | git branch | gp | git push |
gco | git checkout | gst | git status |
gcam | git commit --all --message | gcmsg | git commit --message |
git diff | gd | git clone | gcl |
插件地址:ohmyzsh/plugins/git · ohmyzsh/ohmyzsh (github.com)
2、z
使用 z 命令,可以快速跳转到最常用的目录。
假设你之前访问过目录 ~/var/backups。你可以无视文件夹路径,通过使用正则表达式匹配来快速访问它。
z backups上述命令将快速跳转到最匹配 backups 的目录,即 ~/var/backups。这样,你可以更快速地进入到你经常访问的目录,而无须输入完整路径。
插件地址:ohmyzsh/plugins/z · ohmyzsh/ohmyzsh (github.com)
3、aliases
aliases 插件可以帮助列出已启用的其他插件当前可用的所有快捷方式。执行 als,即可查看所有别名。
插件地址:ohmyzsh/plugins/aliases · ohmyzsh/ohmyzsh (github.com)
4、sudo
sudo 插件可以通过按两次 esc,快速在当前命令前面添加 sudo 前缀。
插件地址:ohmyzsh/plugins/sudo · ohmyzsh/ohmyzsh (github.com)
5、you-should-use
you-should-use 插件提醒你应该使用一个现有的别名来执行刚刚输入的命令。还支持检测全局别名和 Git 别名。
# 下载插件
git clone https://github.com/MichaelAquilina/zsh-you-should-use.git $ZSH_CUSTOM/plugins/you-should-useyou-should-use 默认将在命令执行之前显示提醒消息。可以通过以下命令修改为命令执行之后显示。
vim ~/.zshrc
export YSU_MESSAGE_POSITION="after"
插件地址:MichaelAquilina/zsh-you-should-use
6、zsh-syntax-highlighting
zsh-syntax-highlighting 会根据输入命令的语法和正确性,以不同的颜色突出显示命令的各个部分。
# 安装插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting插件地址:zsh-users/zsh-syntax-highlighting
7、zsh-autosuggestions
zsh-autosuggestions 插件可以根据历史命令,智能提供输入建议,减少键入工作量,提高命令输入的速度和准确性。
# 安装插件
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions插件地址:zsh-users/zsh-autosuggestions
常用脚本
测速脚本
特点
显示当前测试的各种系统信息;
取自世界多处的知名数据中心的测试点,下载测试比较全面;
支持 IPv6 下载测速;
IO 测试三次,并显示平均值。
wget -qO- bench.sh | bash
curl -Lso- bench.sh | bash