服务器初始化全流程
- Linux 内核更新
sudo apt update
sudo apt upgrade
- SSH 免密登录+保持连接
# 本机配置免密码连接到服务器
ssh-copy-id root@satori.love
# 服务器设置连接心跳检查
echo 'ClientAliveInterval 60' | sudo tee -a /etc/ssh/sshd_config
echo 'ClientAliveCountMax 3' | sudo tee -a /etc/ssh/sshd_config
sudo service ssh restart
- TCP BBR 网络加速
# BBR是一种网络拥塞算法, 需要 Linux 内核 4.9 或更高版本
sudo bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
sudo sysctl -p
sysctl net.ipv4.tcp_congestion_control
- Swp 内存交换文件
# 将占据了物理内存却长时间未被使用的数据移入磁盘(这里设4G, 应按需调整大小)
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- Prometheus 收集指标
- Caddy 部署服务
- PM2 管理进程
# 安装 nodejs
sudo apt install nodejs
sudo apt install npm
sudo node -v
# 全局安装 n 模块, 将 nodejs 切换到 v18 版本
sudo npm install n -g -y
sudo n v18
# 如果版本没有变化, 需要重新打开一个终端
sudo node -v
# 全局安装 pm2 模块, 用于管理 nodejs 进程
sudo npm install pm2 -g -y
# 运行 pm2 startup 后,它将显示一个命令,你需要复制并在终端中运行这个命令。这将设置系统启动脚本,使得在系统启动时,PM2 和你的应用程序也会启动
pm2 startup
bash
#!/bin/bash
# 升级 apt
apt update
apt upgrade -y
# 检查 .bashrc 中是否有 "# proxy on" 的注释
# 如果没,则向文件中添加代理设置
if ! grep -q "# proxy on/off" ~/.bashrc; then
echo """
# proxy on/off
function proxy_off() {
unset http_proxy
unset https_proxy
unset no_proxy
echo -e "Proxy Off"
}
function proxy_on(){
export http_proxy="http://127.0.0.1:7890"
export https_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
echo -e "Proxy On"
}
"""
source ~/.bashrc
echo "添加代理设置开关完毕"
# 检查 .bashrc 中是否有 "alias venv='source venv/bin/activate'"
# 如果没,则向文件中添加虚拟环境开关
if ! grep -q "alias venv='source venv/bin/activate'" ~/.bashrc; then
echo """
# venv
alias venv='source venv/bin/activate'
"""
source ~/.bashrc
echo "添加虚拟环境开关完毕"
# 检查 python3 是否安装, 如果没安装则安装
if ! command -v python3 &> /dev/null; then
apt install python3 -y
pip3 install --upgrade pip
fi
# 检查 git 是否安装, 如果没安装则安装
if ! command -v git &> /dev/null; then
apt install git -y
fi
# 检查 ssh 设置中的连接重试次数是否为 30 次, 如果不是则修改
if ! grep -q "ConnectTimeout 30" /etc/ssh/ssh_config; then
sed -i 's/ConnectTimeout 0/ConnectTimeout 30/g' /etc/ssh/ssh_config
systemctl restart sshd
echo "修改 ssh 连接重试次数为 30 次"
fi
# 检查 ssh 设置中的连接超时时间是否为 30 秒, 如果不是则修改
if ! grep -q "ConnectionAttempts 30" /etc/ssh/ssh_config; then
sed -i 's/ConnectionAttempts 0/ConnectionAttempts 30/g' /etc/ssh/ssh_config
systemctl restart sshd
echo "修改 ssh 连接超时时间为 30 秒"
fi
# 检查 caddy 是否安装, 如果没安装则安装
if ! command -v caddy &> /dev/null; then
wget -O - https://apt.fury.io/caddy/ | bash -s personal
apt install caddy -y
fi
# 检查 clash 是否安装, 如果没安装则安装
if ! command -v clash &> /dev/null
then
wget -O clash
chmod +x clash
mv clash /usr/local/bin
fi
# 检查主机名是否为 "GPU",修改主机名为 "GPU"
if ! grep -q "GPU" /etc/hostname; then
echo "GPU" > /etc/hostname
echo "修改主机名为 GPU"
fi
--- satori ---
Last