拿到服务器必做的几件事
1.检查ip可用性
https://www.itdog.cn/ping/
2.dd系统
一键DD脚本-debian12
bash <(wget –no-check-certificate -qO- 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh') -debian 12 -pwd 123456 -port 22
运行结束显示
[Finish] Input 'reboot' to continue the subsequential installation.
reboot
等待
root@mail:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
3.系统设置
更新软件库
apt update -y && apt upgrade -y
更新、安装必备软件
也有可能默认安装
apt install sudo curl wget nano
校正系统时间
将时区更改为上海
sudo timedatectl set-timezone Asia/Shanghai
查看当前时区
root@mail:~# timedatectl
Local time: Wed 2024-11-27 21:11:18 CST
Universal time: Wed 2024-11-27 13:11:18 UTC
RTC time: Wed 2024-11-27 13:11:18
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: n/a
RTC in local TZ: no
系统参数调优
这个功能通过调整各种系统和网络参数来优化服务器的性能。
实现方法:
- 内核参数调整:例如,增加TCP缓冲区大小、修改系统队列长度等,这些改变有助于提高网络吞吐量和减少延迟。
- 性能优化:安装和配置Tuned和其他系统性能优化工具来自动调整和优化服务器的运行状态。
- 资源限制:例如,设置文件打开数量的限制,这可以防止某些类型的资源耗尽攻击。
通过这些功能,你的服务器不仅能够更有效地管理资源,还能提高对外部威胁的防护能力,保障系统稳定运行。
bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Tune/main/tune.sh) -t
4.BBR
BBR 是 Google 提出的一种新型拥塞控制算法(Bottleneck Bandwidth and RTT),全称为瓶颈带宽和往返传播时间。
在 Linux 系统中,BBR 主要有以下特点和作用:
- 提高网络性能:它可以显著提高吞吐量和降低 TCP 连接的延迟,使数据传输更加高效。
- 适应不同网络环境:适合高延迟、高带宽的网络链路,以及慢速接入网络的用户,能在一定丢包率的网络链路上充分利用带宽,并降低网络链路上的缓冲区占用率从而降低延迟。
- 优化拥塞控制:BBR 改变了传统基于丢包反馈的拥塞控制机制,通过精确测量往返传播时间(RTT)和瓶颈带宽等参数来更有效地控制数据发送速率,避免了传统算法中因单纯丢包判断拥塞而导致的带宽利用率不高和端到端延迟大等问题。
- 提升网络稳定性:有助于减少网络拥塞和数据包丢失,提高网络的稳定性和可靠性。
BBRx是一位大佬自己魔改的BBR版本。该版本调整了类似 startup(启动阶段)、drain(排空阶段)、probe_bw(探测带宽阶段)、probe_rtt(探测往返时间阶段)等状态下的一些关键参数,如 pacing_gain(发送速率增益)、cwnd_gain(拥塞窗口增益)等,个人来说觉得比原版BBR的效果更好,如果不喜欢的话,可以选择原版BBR进行安装。
开启BBRX加速
一键脚本
bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Tune/main/tune.sh) -x
完成后重启VPS、使内核更新和BBR设置都生效
确认BBR开启
root@mail:~# lsmod | grep bbr
tcp_bbrx 20480 2
tcp_bbr 20480 2
5.添加SWAP
在 Linux 系统中,SWAP(交换空间)是指一块磁盘空间,用于在物理内存(RAM)不足时,作为临时的扩展内存来使用。当系统的物理内存使用量接近饱和,Linux 内核会将一些不常使用的内存页交换到 SWAP 分区中,从而为当前运行的程序腾出更多的物理内存。当这些被交换出去的内存页再次被需要时,它们会被重新换回到物理内存中。SWAP 分区的存在可以在一定程度上避免由于物理内存不足导致系统性能严重下降或进程被强制终止的情况。
因此,SWAP对于内存小的VPS非常有必要,可以提高我们的运行效率。
一键脚本
wget -O swap.sh https://raw.githubusercontent.com/yuju520/Script/main/swap.sh && chmod +x swap.sh && clear && ./swap.sh
手动
# 增加虚拟内存为2G,适合小内存vps,教程https://blog.laoda.de/archives/vps-swap与下面命令同理
# 根据自己vps内存修改,2G以下建议实际内存2倍,2-4G建议1.5倍
sudo swapon –show # 查看当前系统的交换空间配置,可以重启再运行这个命令看是否生效
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # 固化
查看当前内存
root@mail:~# free -m
total used free shared buff/cache available
Mem: 4425 353 3671 0 623 4072
Swap: 9215 0 9215
6.安全设置
更改SSH端口
nano /etc/ssh/sshd_config
使用 ctrl+w 进入搜索模式,然后输入 Port 22 并回车
修改端口
保存ctrl+o+回车文件并退出ctrl+x
重启ssh服务
sudo service sshd restart
说明:为了防止失联,不要关闭当前ssh窗口,新开一个进行测试
使用复杂密码
passwd
复杂密码采用bitwardern服务生成
新建普通用户
adduser <username>
将用户添加到sudo名单中
visudo
User Privilege Specification 下加入一行 <username> ALL=(ALL) NOPASSWD: ALL
启用RSA密钥验证登录并禁止密码登录
在本地使用keygen生成密钥对
ssh-keygen -t rsa -b 4096 -C "myvps"
上传公钥(win11)
scp -P <port> ./.ssh/id_rsa.pub root@<ip>:/root/.ssh/authorized_keys
输入服务器登录密码
修改authorized_keys文件权限为600 (仅所有者可读可写)
chmod 600 ~/.ssh/authorized_keys
编辑ssh配置文件禁止密码登录
nano /etc/ssh/sshd_config #搜索PasswordAuthentication,把yes改成no
安装UFW防火墙
Ubuntu默认自己已经是自带ufw防火墙了,只是没有启动而已(如果是Debian的话,需要安装)
sudo apt install ufw -y
检查防火墙状态
root@mail:~# sudo ufw status
Status: inactive
设置ufw使用默认值
sudo ufw default deny incoming
sudo ufw default allow outgoing
允许SSH连接
sudo ufw allow <port>/tcp comment 'SSH'
允许http连接
sudo ufw allow http
允许https连接
sudo ufw allow https
启动ufw防火墙
sudo ufw enable
删除规则
sudo ufw status numbered
sudo ufw delete 5
重载配置
sudo ufw reload
安装fail2ban
安装
apt install fail2ban
配置
fail2ban的配置文件通常位于 /etc/fail2ban/ 目录下,fail2ban的.conf配置文件都是可以被.local覆盖,所以配置方式建议是添加.local文件,不修改原来的配置文件。
nano /etc/fail2ban/jail.local
配置如下
[DEFAULT]
#忽略的IP列表,不受设置限制(白名单)
ignoreip = 127.0.0.1
#允许ipv6
allowipv6 = auto
#日志修改检测机制(gamin、polling和auto这三种)
backend = systemd
#针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置
[sshd]
#是否激活此项(true/false)
enabled = true
#过滤规则filter的名字,对应filter.d目录下的sshd.conf
filter = sshd
#ssh端口
port = ssh
#动作的相关参数
action = iptables[name=SSH, port=ssh, protocol=tcp]
#检测的系统的登陆日志文件
logpath = /var/log/secure
#屏蔽时间,单位:秒
bantime = 86400
#这个时间段内超过规定次数会被ban掉
findtime = 86400
#最大尝试次数
maxretry = 3
设置开机自动启动fail2ban
sudo systemctl enable fail2ban
重新启动fail2ban
sudo systemctl restart fail2ban
查看fail2ban的状态
sudo systemctl status fail2ban
查看所有可用jail的状态
fail2ban–client status
7.安装docker、docker-compose
Docker安装
非大陆服务器
wget –qO– get.docker.com | bash
或
curl –fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
大陆服务器Docker安装
curl https://install.1panel.live/docker-install -o docker-install && sudo bash ./docker-install && rm -f ./docker-install
查看Docker版本
docker -v
开机自动启动
sudo systemctl enable docker
卸载Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo apt-get remove docker docker-engine
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
修改Docker配置
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘:
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF
修改后重启docker服务
systemctl restart docker
Docker-compose安装
经佬友反馈,Docker从18.06.0-ce 版本就开始自带Docker Compose工具,因此,我们只需要检验Docker Compose的版本。
查看Docker Compose版本
docker compose version
8.安装Nginx Proxy Manager
创建安装目录
mkdir -p /root/data/docker_data/npm
cd /root/data/docker_data/npm
使用docker-compose的方式安装
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless–stopped
ports:
– '80:80' # 保持默认即可,不建议修改左侧的80
– '81:81' # 冒号左边可以改成自己服务器未被占用的端口
– '443:443' # 保持默认即可,不建议修改左侧的443
volumes:
– ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
– ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
打开防火墙81端口
ufw allow 81 comment "npm"
查看端口是否被占用
apt install lsof #安装 lsof
lsof -i:81 #查看 81 端口是否被占用,如果被占用,重新自定义一个端口
运行并访问Nginx Proxy Manager
cd /root/data/docker_data/npm # 来到 dockercompose 文件所在的文件夹下
docker-compose up -d
默认登录名和密码
Email: admin@example.com
Password: changeme
更新
cd /root/data/docker_data/npm
docker-compose down
cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive # 万事先备份,以防万一
docker-compose pull
docker-compose up -d # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
卸载
cd /root/data/docker_data/npm
docker-compose down
rm -rf /root/data/docker_data/npm # 完全删除映射到本地的数据
9.测试
# 融合怪
curl -L https://github.com/spiritLHLS/ecs/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh
# NodeLoc聚合测评脚本
# https://github.com/everett7623/nodeloc_vps_test
# CentOS
yum install wget&&wget -O Nlbench.sh https://raw.githubusercontent.com/everett7623/nodeloc_vps_test/main/Nlbench.sh && chmod +x Nlbench.sh && ./Nlbench.sh
# Debian/Ubuntu/Deepin
wget -O Nlbench.sh https://raw.githubusercontent.com/everett7623/nodeloc_vps_test/main/Nlbench.sh && chmod +x Nlbench.sh && ./Nlbench.sh
# ip解锁
bash <(curl -Ls IP.Check.Place)
# 路由追踪
curl nxtrace.org/nt |bash
# 查看vps回程路由
nexttrace 你的宽带ip
# iperf测速,测试单线程,如果重传严重需调整tcp缓冲区
apt update
apt install iperf3
# 电脑下载iperf3,命名iperf3.exe,打开文件夹,在地址栏输入cmd。-P是线程数,-R是测试小鸡到自己的速度,去掉则反之,-t是时间
iperf3.exe -c 小鸡的ip -P 1 -t 60 -R
# 检查是否超售
lsmod | grep virtio_balloon
10.脚本合集
# 大杂烩,好用推荐
curl -fsSL https://raw.githubusercontent.com/eooce/ssh_tool/main/ssh_tool.sh -o ssh_tool.sh && chmod +x ssh_tool.sh && ./ssh_tool.sh
# 科技lion脚本
bash <(curl -sL kejilion.sh)
评论前必须登录!
注册