VPS优惠推送
分享好玩教程

Debian 13 新机环境配置速查:换源、Docker、Python、Node.js、systemd 一次配好(35+ 命令)

这份清单是照着 Debian 13 整理的:从重装系统、换源、改时区,到 Docker、Python、Node.js,再到开机自启这些零碎。每条都能直接复制粘贴,按顺序做下来就是一台能干活的新机器。

命令分两大类:系统层(换源、时区、Docker、Python、Node)和顺手补(Git 代理、反代去路径、SSH 密钥、Windows 几个开关)。没装过的东西挑着做,不必全跑一遍。

先记一句:涉及 rm -rf 和卸载的那几条,跑之前把要留的数据先备份。下面凡是这种命令都会单独标出来。

1、换源与系统基础设置

新机器装完系统,先把 apt 源换到国内镜像,再改时区。本地机器在国外、或本来就走内网源的话,这一步可以跳过。

1.1 换源(LinuxMirrors 脚本)

bash <(curl -sSL https://linuxmirrors.cn/main.sh) 
 --use-intranet-source true 
 --backup true 
 --upgrade-software true 
 --clean-cache true 
 --ignore-backup-tips

几个参数的意思:--use-intranet-source true 优先用云厂商内网源(阿里云、腾讯云这类机器才有效果);--backup true 备份原来的源;--upgrade-software true 换完顺手更新软件包;--clean-cache true 清下载缓存;--ignore-backup-tips 不覆盖已有的备份。

主站脚本访问不了时,用 gitee 上的镜像版本,参数一样:

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) 
 --use-intranet-source true 
 --backup true 
 --upgrade-software true 
 --clean-cache true 
 --ignore-backup-tips

1.2 重装系统(可选)

买到的机器系统不满意,先重装再配环境。用 bin456789 的 reinstall 脚本,两个来源二选一:

# 海外机器
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh

# 国内机器(走 CNB 镜像)
curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh
bash reinstall.sh debian 13 --ssh-key "ssh-ed25519 AAAA...你的公钥... 备注"
reboot

注意 --ssh-key 后面要贴公钥内容(~/.ssh/id_ed25519.pub 里那一整行),不是文件路径。重装会清空整块磁盘,别在有数据的机器上跑。

1.3 时区改成中国标准时间

sudo timedatectl set-timezone Asia/Shanghai
date

改完用 date 确认一眼,输出里有 CST 就对了。

1.4 清空 Bash 历史(慎用)

cat /dev/null > ~/.bash_history && history -c

转手卖机器、或者交了工单不想暴露命令记录时才用。跑完本地历史就没了,正在用的终端也要关掉重开才彻底。

2、Git:身份与代理

装完 Git 先配身份,不然第一次 git commit 会卡在提示上。

# 全局身份(换成自己的)
git config --global user.name "你的名字"
git config --global user.email "[email protected]"

# 确认
git config --global --list

需要走代理才能拉 GitHub 的时候,两种写法:全部流量走代理,或者只让 GitHub 走代理。

# 全局代理
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080

# 只给 GitHub 配代理(端口按自己的改)
git config --global http.https://github.com/.proxy http://127.0.0.1:10000
git config --global https.https://github.com/.proxy http://127.0.0.1:10000

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

只给 GitHub 配的那两条,优先级比全局高,适合「国内仓库要直连、GitHub 才走代理」的场景。

3、Docker:安装、换源、卸载

Docker 的装法按机器情况选一种就行:

方式 适合 特点
官方脚本 境外机器,或能直连 get.docker.com 一条命令装完,版本最新
官方脚本 + 镜像参数 境内机器,但能连上官方脚本 只换软件源,最省事
LinuxMirrors 脚本 境内机器,想要指定 CE 源和镜像仓库 两个参数都能自定义

3.1 官方脚本安装

# 境外
curl -fsSL https://get.docker.com | bash -s docker

# 境内:用阿里源
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 境内:用微软云中国源
curl -fsSL https://get.docker.com | bash -s docker --mirror AzureChinaCloud

官方脚本连不上时,把安装脚本本身也换成镜像,再用中科大源装:

export DOWNLOAD_URL="https://mirrors.ustc.edu.cn/docker-ce"
curl -fsSL https://cdn.jsdmirror.com/gh/docker/docker-install@master/install.sh | bash -s docker

# 备选:换一个脚本镜像
export DOWNLOAD_URL="https://mirrors.ustc.edu.cn/docker-ce"
curl -fsSL https://cdn.bring.cool/gh/docker/docker-install@master/install.sh | bash -s docker

腾讯云机器还有个内网加速版的写法,DOWNLOAD_URL 换成内网地址:

export DOWNLOAD_URL="https://mirrors.tencentyun.com/docker-ce"
curl -fsSL https://cdn.bring.cool/gh/docker/docker-install@master/install.sh | bash -s docker

3.2 LinuxMirrors 脚本安装

bash <(curl -sSL https://linuxmirrors.cn/docker.sh) 
 --source https://mirrors.tuna.tsinghua.edu.cn/docker-ce 
 --source-registry https://docker.1ms.run

--source 指定 Docker CE 软件源,--source-registry 指定拉镜像用的仓库地址。想用 gitee 版脚本,换成:

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh) 
 --source https://mirrors.tuna.tsinghua.edu.cn/docker-ce 
 --source-registry https://docker.1ms.run

3.3 配置镜像仓库(拉镜像加速)

装好之后配 mirror 才有意义,否则 docker pull 还是会超时。写 /etc/docker/daemon.json:

sudo tee /etc/docker/daemon.json <<EOF
{
 "registry-mirrors": [
  "https://docker.1ms.run",
  "https://dockerproxy.net"
 ]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker
docker info | grep -A5 "Registry Mirrors"

公共镜像源这两年关了不少,用之前先测一下通不通:curl -I https://docker.1ms.run/v2/ 返回 200 或 401 才算能用。全部失效时就自己搭一个,或者回到「能直连就不配 mirror」的老办法。

3.4 完全卸载(危险)

下面这套会把 Docker 连同所有镜像、容器、卷一起删掉,/var/lib/docker 里的东西没了就是没了,确认没有要留的数据再执行。

# 卸载软件包
sudo apt-get purge docker-ce docker-ce-cli containerd.io 
 docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# 删除所有镜像、容器、卷
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# 删除软件源和密钥环
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc

# 删除配置
sudo rm -f /etc/docker/daemon.json
sudo rm -f ~/.docker/config.json

顺手把 docker 用户组里残留的账号删掉:sudo deluser 用户名 docker。容器里升级 PHP 的思路和宿主机不一样,之前单独写过一篇:在 Docker 里升级 PHP:换镜像,不是 restart。

4、Python:Miniconda 或 uv,二选一

两个工具都能管 Python 版本,选一个用就行:要跑数据科学那套就 Miniconda,只要干净的解释器和虚拟环境就 uv。uv 更轻,装得快。

4.1 Miniconda

# 安装(清华镜像站下载)
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b

# 初始化,重新开终端或 source ~/.bashrc 生效
$HOME/miniconda3/bin/conda init
source ~/.bashrc

# 建环境(Python 3.12)
conda create -n venv_name python=3.12
conda activate venv_name

# pip 换清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

卸载:先删目录,再把 ~/.bashrc 里 conda 加的那段(从 >>> conda initialize >>> 到 <<< conda initialize <<<)一并删掉,不然每次开终端都会报错。

rm -rf ~/miniconda3

4.2 uv

# 安装
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env

# 一次装多个 Python 版本
uv python install 3.9 3.10 3.11 3.12

# 换清华源(先建目录,否则重定向会失败)
mkdir -p ~/.config/uv
cat >> ~/.config/uv/uv.toml << EOF
[[index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true
EOF

# 建虚拟环境并激活
uv venv .venv
source .venv/bin/activate

不想改配置文件也可以用环境变量临时指定源:UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple。腾讯云机器能不能走内网源,看 UV_DEFAULT_INDEX=http://mirrors.tencentyun.com/pypi/simple 通不通。

卸载 uv 把三样清掉:

uv cache clean
rm -r "$(uv python dir)"
rm -r "$(uv tool dir)"
rm ~/.local/bin/uv ~/.local/bin/uvx

5、Node.js:用 nvm 管版本

Node 用 nvm 装,切版本不用重新编译,也不会污染系统自带的 node。

5.1 装 nvm 和 Node

# 装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
source ~/.bashrc

# 装 LTS 并切过去
nvm install --lts
nvm use --lts
node -v

要指定版本就 nvm install 22,装完 nvm use 22。nvm list 能看到装过的所有版本。

5.2 淘宝镜像源

# 设置
npm config set registry https://registry.npmmirror.com/
pnpm config set registry https://registry.npmmirror.com/
yarn config set registry https://registry.npmmirror.com/

# 或者用环境变量
NPM_CONFIG_REGISTRY=https://registry.npmmirror.com/

# 还原成官方源
npm config set registry https://registry.npmjs.org/
pnpm config set registry https://registry.npmjs.org/
yarn config set registry https://registry.yarnpkg.com/

腾讯云机器可以试内网 npm 源:NPM_CONFIG_REGISTRY=http://mirrors.tencentyun.com/npm/,能通就比公网快。

5.3 包管理器代理

# npm
npm config set proxy http://127.0.0.1:1080
npm config set https-proxy http://127.0.0.1:1080
npm config delete proxy
npm config delete https-proxy

# pnpm
pnpm config set proxy http://127.0.0.1:1080
pnpm config set https-proxy http://127.0.0.1:1080
pnpm config delete proxy
pnpm config delete https-proxy

# yarn
yarn config set proxy http://127.0.0.1:1080
yarn config set https-proxy http://127.0.0.1:1080
yarn config delete proxy
yarn config delete https-proxy

5.4 卸载

# 退出当前 nvm 管理的版本
nvm deactivate

# 看装了哪些版本
nvm list

# 按需卸载某个版本(示例:22)
nvm uninstall 22

# 卸载 nvm 本身
nvm_dir="${NVM_DIR:-~/.nvm}"
nvm unload
rm -rf "$nvm_dir"

最后记得编辑 ~/.bashrc,删掉 nvm 加的那几行,否则新终端会报 nvm.sh not found:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion

6、杂项:开机自启、反代、Windows 小开关

6.1 用 systemd 做开机自启

先确认有 systemd(Debian 13 默认就有,容器里通常没有):sudo apt install systemd。

把你的程序写成 service 文件,放在 /etc/systemd/system/:

sudo nano /etc/systemd/system/xxx.service
[Unit]
Description=xxx server
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
WorkingDirectory=/path/to
ExecStart=/path/to/xxx

[Install]
WantedBy=multi-user.target

写完后先 daemon-reload 再启动,不然 systemd 看不到新文件:

sudo systemctl daemon-reload
sudo systemctl start xxx
sudo systemctl status xxx
sudo systemctl enable xxx           # 开机自启
sudo systemctl disable xxx          # 取消开机自启
sudo systemctl restart xxx
sudo systemctl stop xxx

6.2 Nginx 反代去掉路径前缀

location ^~ /xxx {
 rewrite ^/xxx(?:/(.*))?$ /$1 break;
 proxy_pass http://127.0.0.1:18080;
}

效果是把 /xxx/a.png 转给后端时变成 /a.png。break 不能省,否则 proxy_pass 那行会再拼一次原路径。

6.3 Caddy 反代去掉路径前缀

handle_path /xxx/* {
 reverse_proxy 127.0.0.1:18080
}

6.4 生成 SSH 密钥

ssh-keygen -t ed25519 -C "[email protected]"

一路回车就是默认路径 ~/.ssh/id_ed25519,公钥在 ~/.ssh/id_ed25519.pub。需要直接贴进服务器就用 ssh-copy-id,比手动复制省事。

6.5 VSCode 里 Python 输出中文乱码

Windows 下的老问题:给系统加一个环境变量 PYTHONIOENCODING,值 UTF8,然后重启 VSCode 和终端才生效。设置 → 系统 → 高级系统设置 → 环境变量。

# 也可以用命令行临时设(当前终端有效)
set PYTHONIOENCODING=UTF8

6.6 Windows 几个常用开关

开机启动文件夹:Win + R 输入 shell:startup,把程序快捷方式丢进去,重启就自动跑。

关闭保留的存储(管理员 PowerShell):

DISM.exe /Online /Set-ReservedStorageState /State:Disabled

Windows 11 LTSC 恢复微软商店:

wsreset -i

Windows 11 LTSC 装 winget:先去应用商店装 App Installer,装好后运行:

Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe

7、新机五步清单

不想看长文就记这五步:

  • 换源:bash <(curl -sSL https://linuxmirrors.cn/main.sh),加备份和升级参数;
  • 时区:timedatectl set-timezone Asia/Shanghai;
  • Docker:按机器选一种装法,装完配 daemon.json 的 mirror;
  • Python / Node:按用途选 Miniconda 或 uv,Node 走 nvm;
  • 开机自启:有常驻程序再写 systemd,记得 daemon-reload。

每条的完整命令都在上面各节,遇到不认识的参数先 --help 看一眼再跑。

参考:Anye 小站 · 环境配置快速复制。本文按本站习惯重排了结构,命令逐条核对过,补了原文缺的 daemon-reload 和 nvm 安装步骤,换掉了原文里带个人标记的地址。

赞(0)
未经允许不得转载:F12笔记 » Debian 13 新机环境配置速查:换源、Docker、Python、Node.js、systemd 一次配好(35+ 命令)

评论 抢沙发