IP地址检测
视频播放器
输入关键词搜索
登录
网站服务器迁移指南

网站服务器迁移指南

2023-02-21
编程开发

备份服务器

cd /home/docker && bash start-backup.sh

恢复服务器

  1. 网站域名映射到新的服务器IP
  2. 连接服务器ssh -o ServerAliveInterval=60 root@ip。如果连接时报错,可能是因为本机~/.ssh/known_hosts文件中有缓存
  3. 更新系统,运行apt update && apt upgrade -y更新系统。update命令更新可用的软件包列表,upgrade命令安装可用的软件包更新
  4. 安装常用的工具apt install rsync htop curl fd-find tldr -y,按需安装
  5. 在本地电脑上执行命令scp ~/.ssh/id_rsa.pub root@<服务器地址>:/root/.ssh/authorized_keys 。这句命令的作用是将本地id_rsa.pub文件复制到远程服务器上,并重命名为authorized_keys。以后登录ssh时,就会自动验证密钥,不需要主动输密码了
  6. 安装docker
    # 安装好后,检查开机自启动有没有配置
    systemctl is-enabled docker
    

    提醒:Docker容器暴露出来的端口,ufw无法进行限制。可以用ufw-docker 关闭所有docker端口,然后用 ufw route 命令打开指定端口。注意:ufw-docker只能关闭-p模式的端口,不能关闭host模式的端口

  7. 执行dpkg-reconfigure tzdata 设置时区,然后查看/etc/timezone显示的时间是否是你刚才设置的时区,如果不是,就将刚才设置的时区写入到这个文件,比如echo "Asia/Shanghai" > /etc/timezone ,最后执行dpkg-reconfigure tzdata重新加载时区
  8. 打开/etc/vim/vimrc.tiny,添加以下内容
    set nocompatible 
    set backspace=2
    set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
    set termencoding=utf-8
    set encoding=utf-8
    
    还遇到一个问题,vi编辑模式下粘贴中文显示乱码。最后排查的原因是:要从纯文本编辑器中复制,粘贴时中文才不会显示乱码

开启BBR加速

BBR(Bottleneck Bandwidth and Round-trip propagation time)是一种由Google开发的网络拥塞控制算法,BBR算法通过动态调整拥塞窗口大小和传输速度,更好地利用网络带宽,同时减少网络延迟,从而实现网络加速的效果

  1. uname -r查看当前的linux内核版本号,如果版本号大于4.9,直接跳到第四步
  2. apt-cache search linux-image | grep $(uname -r)搜索与当前内核版本号匹配的BBR模块,如果没有打印结果,就手动将这两个命令分开来执行。因为随着时间的推移,文件命名规则有可能会改变
  3. 使用apt安装刚才找到的模块
  4. 打开文件vi /etc/sysctl.conf,然后输入这两行,并wq保存退出
    net.core.default_qdisc=fq
    net.ipv4.tcp_congestion_control=bbr
    
  5. 执行sysctl -p
  6. sysctl net.ipv4.tcp_congestion_control,查看输出结果
    net.ipv4.tcp_congestion_control = bbr
    
    输出这个表示配置成功

防止ssh被暴力破解

安装fail2ban

apt update && apt install fail2ban -y

进入/etc/fail2ban目录,在该目录下,创建jail.local文件,并写入以下内容

[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode   = normal
backend = systemd
enabled = true
port    =  22
filter = sshd
logpath = /var/log/auth.log
# 最大尝试次数
maxretry = 2
# 封禁时间,单位s。-1为永久封禁
bantime = -1

可能会报错

root@racknerd-88be8c:/etc/fail2ban# systemctl status fail2ban
× fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Mon 2024-04-15 09:40:34 EDT; 1min 24s ago
   Duration: 162ms
       Docs: man:fail2ban(1)
    Process: 14087 ExecStart=/usr/bin/fail2ban-server -xf start (code=exited, status=255/EXCEPTION)
   Main PID: 14087 (code=exited, status=255/EXCEPTION)
        CPU: 156ms

Apr 15 09:40:34 racknerd-88be8c systemd[1]: Started fail2ban.service - Fail2Ban Service.
Apr 15 09:40:34 racknerd-88be8c fail2ban-server[14087]: 2024-04-15 09:40:34,435 fail2ban.configreader   [14087]: WARNING 'allowipv6' not defined in 'Definition'. Using default one: 'auto'
Apr 15 09:40:34 racknerd-88be8c fail2ban-server[14087]: 2024-04-15 09:40:34,451 fail2ban                [14087]: ERROR   Failed during configuration: Have not found any log file for sshd jail
Apr 15 09:40:34 racknerd-88be8c fail2ban-server[14087]: 2024-04-15 09:40:34,457 fail2ban                [14087]: ERROR   Async configuration of server failed
Apr 15 09:40:34 racknerd-88be8c systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION
Apr 15 09:40:34 racknerd-88be8c systemd[1]: fail2ban.service: Failed with result 'exit-code'.

解决方案:https://github.com/fail2ban/fail2ban/issues/3567

启动fail2ban

systemctl restart fail2ban
# 查看状态
systemctl status fail2ban

查看fail2ban运行状态

fail2ban-client status
fail2ban-client status sshd

添加/取消 ip地址

# 添加
fail2ban-client set sshd banip <ip-address>
# 取消
fail2ban-client set sshd unbanip <ip-address>

配置网站

  1. 在服务器上创建文件夹/home/docker
  2. onedrive中的docker/rclone文件夹下载到本地
  3. rclone文件夹上传到服务器,scp -r rclone root@ip:/home/docker/rclone
  4. 在服务器上运行chmod +x start-copy.sh && bash start-copy.sh
  5. 等待下载。。。。。
  6. 挨个执行每个程序
  7. 上传网站源代码然后执行
  8. 在网站搜索crontab关键字,看看哪里需要配置

    遇到的问题:

    • rclone要重新配置

其他

一般情况下,服务器只需要开启ssh端口和80/443端口,docker容器端口用ufw-docker关闭。

  1. 80/443端口用cdn隐藏
  2. ssh端口搭配fail2ban工具进行限制🚫

总结

最后,把服务器重启下,确保以上所有配置在重启后依然有效

THE END
0/500
暂无评论
📢网站公告
欢迎来到这里
⚙️实用工具
html转pdfmarkdown编辑器
本站推荐:腾讯云服务器仅需2.3折 (点击直达)
用户协议
隐私政策
Build Time: 2025-04-26 11:07:00