MoreRSS

site iconRedon | 一心

Chanzhaoyu. 前端开发,chatgpt-web 开发者。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Redon | 一心的 RSS 预览

新系统 Debian 优化配置

2024-09-29 08:00:00

原文来自 【配置优化】我拿到VPS服务器必做的那些事,备份记录

一、系统设置

  1. 更新软件库

    • apt update -y && apt upgrade -y
  2. 更新、安装必备软件

    • apt install sudo curl wget nano
  3. 校正系统时间

    • 将时区改为上海:sudo timedatectl set-timezone Asia/Shanghai
    • 查看当前时区:timedatectl
    • 列出所有时区:timedatectl list-timezones
  4. 系统参数调优

    • 内核参数调整:例如,增加 TCP 缓冲区大小、修改系统队列长度等,这些改变有助于提高网络吞吐量和减少延迟。
    • 性能优化:安装和配置 Tuned 和其他系统性能优化工具来自动调整和优化服务器的运行状态。
    • 资源限制:例如,设置文件打开数量的限制,这可以防止某些类型的资源耗尽攻击。

    实现方法:bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Tune/main/tune.sh) -t

二、BBR

BBR 是 Google 提出的一种新型拥塞控制算法(Bottleneck Bandwidth and RTT),全称为瓶颈带宽和往返传播时间。

在 Linux 系统中,BBR 主要有以下特点和作用:

  1. 提高网络性能:它可以显著提高吞吐量和降低 TCP 连接的延迟,使数据传输更加高效。
  2. 适应不同网络环境:适合高延迟、高带宽的网络链路,以及慢速接入网络的用户,能在一定丢包率的网络链路上充分利用带宽,并降低网络链路上的缓冲区占用率从而降低延迟。
  3. 优化拥塞控制:BBR 改变了传统基于丢包反馈的拥塞控制机制,通过精确测量往返传播时间(RTT)和瓶颈带宽等参数来更有效地控制数据发送速率,避免了传统算法中因单纯丢包判断拥塞而导致的带宽利用率不高和端到端延迟大等问题。
  4. 提升网络稳定性:有助于减少网络拥塞和数据包丢失,提高网络的稳定性和可靠性。

因为我本人是 PT 玩家,所以接触到了一位大佬自己魔改的 BBR 版本,也就是 BBRx。该版本调整了类似 startup(启动阶段)、drain(排空阶段)、probe_bw(探测带宽阶段)、probe_rtt(探测往返时间阶段)等状态下的一些关键参数,如 pacing_gain(发送速率增益)、cwnd_gain(拥塞窗口增益)等,个人来说觉得比原版 BBR 的效果更好,如果不喜欢的话,可以选择原版 BBR 进行安装。

  1. 开启 BBRX 加速
    • bash <(wget -qO- https://raw.githubusercontent.com/jerry048/Tune/main/tune.sh) -x
  2. 重启 VPS、使内核更新和 BBR 设置都生效
    • sudo reboot
  3. 确认 BBR 开启
    • 如果你想确认 BBR 是否正确开启,可以使用下面的命令:lsmod | grep bbr,此时应该返回这样的结果:tcp_bbrxtcp_bbr
  4. 再次重启 VPS
    • sudo reboot,如果只有tcp_bbr则再等几分钟reboot。此时再进行查询:lsmod | grep bbr,此时应该返回这样的结果:tcp_bbrx
  5. 开启 BBR 加速(备选)
    • wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh &&./bbr.sh,也是重启 VPS 生效。

三、添加 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
  • 查看当前内存:free -m

四、安装 Docker、Docker-compose 以及修改配置

  1. Docker
    • Docker 安装
      • 非大陆服务器:wget -qO- get.docker.com | bashcurl -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.iosudo apt-get remove docker docker-enginesudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerd
  2. Docker-compose 安装
    • 经佬友反馈,Docker 从 18.06.0-ce 版本就开始自带 Docker Compose 工具,因此,我们只需要检验 Docker Compose 的版本。
    • 查看 Docker Compose 版本:docker compose version

五、修改 SSH 端口

修改 SSH 端口通常有以下几个主要原因:

  1. 增强安全性:SSH 服务默认使用的 22 端口是攻击者经常扫描和尝试攻击的目标。通过将端口修改为一个不常见的数值,可以减少自动攻击和暴力破解的风险,因为攻击者通常会首先针对常见的默认端口进行攻击。
    • 例如,如果攻击者使用自动化工具扫描大量服务器,这些工具可能主要集中在 22 端口。而修改了端口后,就降低了被这类工具轻易发现和攻击的可能性。
  2. 减少误连接和非法访问尝试:一些网络环境中可能存在大量的随机连接请求或非法访问尝试,针对默认的 22 端口。更改端口可以减少这类无意义的连接请求。
    • 假设您的服务器处于一个公共网络环境中,经常会收到大量的随机连接尝试,其中很多是针对常见端口的。修改 SSH 端口可以减少这类不必要的干扰。

将默认的 22 端口修改为 55520(暗戳戳地表白)@wanwan:

  • sudo sed -i 's/^#\?Port 22.*/Port 55520/g' /etc/ssh/sshd_config
  • 重启 sshd 服务:sudo systemctl restart sshd

六、密钥登录

一键生成你的密钥:

  • wget -O key.sh https://raw.githubusercontent.com/yuju520/Script/main/key.sh && chmod +x key.sh && clear &&./key.sh

注意:请牢记你生成的密钥,否则会有无法连接 SSH 的后果。

七、安装 fail2ban

  1. 安装 fail2ban:apt install fail2ban
  2. 配置 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
  1. Ctrl+S 保存并退出。
  2. 设置开机自动启动 fail2ban:sudo systemctl enable fail2ban
  3. 重新启动 fail2ban:sudo systemctl restart fail2ban
  4. 查看 fail2ban 的状态:sudo systemctl status fail2ban
  5. 查看所有可用 jail 的状态:fail2ban-client status

在 Debian 系统中开放端口

2024-09-14 08:00:00

一、使用 iptables(如果使用传统的 iptables 防火墙)

1、查看当前的 iptables 规则

  sudo iptables -L -n

2、添加允许端口的规则(以 38042 为例)

sudo iptables -A INPUT -p tcp --dport 38042 -j ACCEPT

3、 保存规则(如果需要永久生效,需要安装iptables-persistent)

安装iptables-persistent(如果未安装)

sudo apt-get install iptables-persistent

保存规则

sudo netfilter-persistent save

二、使用 ufw(Uncomplicated Firewall,简单防火墙)

1、启用 ufw(如果尚未启用)

sudo ufw enable

2、允许 38042 端口

sudo ufw allow 38042/tcp

三、使用 firewalld(如果系统安装并使用 firewalld)

1、检查 firewalld 状态

sudo systemctl status firewalld

2、添加端口到 firewalld 区域(例如 public 区域)

sudo firewall-cmd --zone=public --add-port=38042/tcp --permanent

3、重新加载 firewalld 配置

sudo firewall-cmd --reload

HarmonyOS Next真机无线调试

2024-08-09 08:00:00

前提条件

  • 在Phone或Tablet上查看设置 > 系统中开发者模式是否存在,如果不存在,可在设置 > 关于手机/关于平板中,连续七次单击“版本号”,直到提示“开启开发者模式”,点击确认开启后输入PIN码(如果已设置),设备将自动重启,请等待设备完成重启。

  • 在设备运行应用/服务需要根据为应用/服务进行签名章节,提前对应用/服务进行签名。

使用无线调试连接方式

1、将 Phone/Tablet 和 PC 连接到同一 WLAN 网络。

2、在开发者模式中,打开“无线调试”开关,并获取 Phone/Tablet 端的 IP 地址和端口号。(如果未开启开发者模式,先多次点击系统版本号开启)

无限调试

3、在PC中执行如下命令连接设备

hdc tconn 设备IP地址:端口号

4、选择无线设备调试

Linux commands - basics

2024-08-05 08:00:00

commands

GitHub全局和本地代理

2024-07-09 08:00:00

Git 设置代理,代理地址每个人不一致,请查看自己的代理 PAC 设置

全局代理

设置 http 代理

git config --global http.proxy http://127.0.0.1:1087
git config --global https.proxy https://127.0.0.1:1087

设置 scoks 代理

git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080

事实上使用 socks5h 更佳,因为 socks5 包含 http(s)

git config --global http.proxy socks5h://127.0.0.1:1080

h 代表 host ,包括了域名解析,即域名解析也强制走这个 proxy

取消设置

git config --global --unset http.proxy
git config --global --unset https.proxy

设置当前项目 Git 代理

可以给某一个项目单独设置代理。和全局代理的区别就是关键字为 --local

设置 http 代理

git config --local http.proxy http://127.0.0.1:1087
git config --local https.proxy https://127.0.0.1:1087

设置 scoks 代理

git config --local http.proxy socks5://127.0.0.1:1080
git config --local https.proxy socks5://127.0.0.1:1080

取消设置

git config --local --unset http.proxy
git config --local --unset https.proxy

参看代理配置

git config --global http.proxy
git config --global https.proxy

只给 GitHub 代理

假如你只需要给 GitHub 全局代理加速,而不影响自部署仓库,那么可以只配置 GitHub

git config --global http.https://github.com.proxy socks5://127.0.0.1:1080