拿到服务器必做的几件事

拿到服务器必做的几件事

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)
在获得服务器访问权限后,进行初始配置是非常关键的一步,它为服务器的安全性、稳定性以及后续的应用部署打下基础。以下是常见的服务器初始配置步骤和检查点: ### 服务器初始配置步骤 1. **更新系统软件包** 在首次登录服务器后,首先应确保系统软件包是最新的。这有助于修复潜在的安全漏洞,并确保系统稳定性。 ```bash # 对于基于 Debian/Ubuntu 的系统 sudo apt update && sudo apt upgrade -y # 对于基于 Red Hat/CentOS 的系统 sudo yum update -y ``` 2. **配置 SSH 安全设置** 修改默认的 SSH 配置可以显著提升服务器的安全性。建议禁止 root 用户直接登录,并禁用密码登录以改用密钥认证方式。 ```bash sudo vi /etc/ssh/sshd_config ``` 修改以下配置项: ``` PermitRootLogin no PasswordAuthentication no ``` 保存后重启 SSH 服务: ```bash sudo systemctl restart sshd ``` 3. **创建普通用户并赋予 sudo 权限** 为了安全起见,日常操作应使用普通用户账户。可以通过以下命令添加用户并赋予其管理员权限: ```bash sudo adduser username sudo usermod -aG sudo username ``` 或者在 `/etc/sudoers` 文件中添加用户权限: ```bash sudo visudo ``` 添加如下行(假设用户名为 `username`): ``` username ALL=(ALL) ALL ``` 4. **配置防火墙** 启用并配置防火墙可以限制不要的端口开放,增强服务器安全性。 ```bash sudo ufw allow OpenSSH sudo ufw enable ``` 对于 CentOS 系统,可使用 `firewalld`: ```bash sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload ``` 5. **设置主机名和网络配置** 为了便于管理和识别,应为服务器设置一个有意义的主机名。临时修改主机名可以使用: ```bash sudo hostnamectl set-hostname your-hostname ``` 永久修改主机名需编辑 `/etc/hostname` 文件,并在 `/etc/hosts` 中添加对应条目。 6. **挂载额外存储设备** 如果服务器配有额外的硬盘或分区,需要进行挂载以便使用。首先查看磁盘信息: ```bash sudo fdisk -l ``` 然后对新磁盘进行分区和格式化: ```bash sudo fdisk /dev/sdX sudo mkfs.xfs /dev/sdX1 ``` 创建挂载点并挂载: ```bash sudo mkdir /mnt/data sudo mount /dev/sdX1 /mnt/data ``` 为实现开机自动挂载,需编辑 `/etc/fstab` 文件,添加如下行: ``` UUID=your-uuid /mnt/data xfs defaults 0 0 ``` 7. **安装基础工具和依赖** 安装一些常用的工具和依赖库,便于后续操作和开发部署: ```bash sudo apt install curl wget git net-tools -y ``` 8. **配置时间同步服务** 确保服务器时间准确,可以安装并配置 NTP(网络时间协议)服务: ```bash sudo apt install ntp -y ``` 或者使用 `systemd-timesyncd`: ```bash sudo timedatectl set-ntp true ``` 9. **设置自动更新和监控** 配置自动更新可以在一定程度上减少手动维护的工作量。可以使用 `unattended-upgrades`(Debian/Ubuntu)或 `yum-cron`(CentOS)来实现自动更新。 同时,建议安装监控工具如 `htop`、`iotop`、`nmon` 等,以便实时监控服务器资源使用情况。 10. **备份配置文件和系统状态** 初始配置完成后,建议对重要配置文件进行备份,并记录当前系统状态,以便后续恢复或排查问题。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫斗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值