本人折腾Debian的一些记录,有需要的可以参考一下。本文所用到的命令,请先确保已获得root权限执行。
 1.更新和升级系统中已安装的软件包
 apt-get update && apt-get upgrade &&; apt-get update --fix-missing
 •apt-get update:更新可用软件包的列表。这个命令会检查软件源中是否有新的软件包或更新,并下载它们的信息,以便后续的安装和升级操作可以使用最新的软件包列表。
 •apt-get upgrade:升级已安装的软件包。这个命令会根据最新的软件包列表,将已安装的软件包升级到最新版本。
 •apt-get update --fix-missing:修复可能由于软件源列表信息不完整而导致的问题。如果在第一步中更新软件包列表时出现错误,这个命令可以尝试修复这些错误。
 • 注:如果用的不是国内源建议更换为国内源,更换源脚本太长我就不提供了,搜索一下Debian怎么换源即可。如果用的是Zy143L大佬的抖音9.9 GT106 Debian固件的话要先执行一下apt-mark hold systemd && apt-mark hold libsystemd0将这俩自动更新关闭,不然会导致按键双击关机失效。
 2.安装一些常用的软件包
 apt-get install curl wget nano vim busybox iptables iproute2 cpufrequtils
 • curl:用于在命令行中传输数据的工具。
 • wget:用于下载文件的命令行工具。
 • nano:一个简单易用的文本编辑器。
 • vim:一个强大的文本编辑器,常用于程序开发和系统配置。
 • busybox:一个适用于嵌入式系统和单片机的工具集,包含了大部分基本的Linux工具。
 • iptables:用于配置Linux防火墙的工具。
 • iproute2:用于管理网络连接和路由的工具。
 • cpufrequtils:用于管理CPU频率的工具。
 3.清理系统中不需要的软件包和日志文件
 apt-get autoremove && apt-get clean && apt-get autoclean && journalctl --vacuum-size=5M
 • apt-get autoremove:卸载已经不再需要的软件包。这个命令会移除已经安装但是没有被其他软件所依赖的软件包。
 • apt-get clean:清理已经下载的软件包文件。这个命令会删除已经下载并安装的软件包的本地缓存文件,以释放磁盘空间。
 • apt-get autoclean:清理过期的软件包。这个命令会删除已经过期的软件包,但是保留最新的软件包版本的本地缓存文件,以便以后重新安装。
 • journalctl --vacuum-size=5M:缩减系统日志文件。这个命令会删除旧的系统日志文件,只保留最近的5M大小的日志文件。
 4.创建swap/zram虚拟内存
 # 创建swap虚拟内存
 dd if=/dev/zero of=/root/swapfile bs=1M count=512
 mkswap /root/swapfile
 swapon /root/swapfile
 • 创建一个大小为512MB虚拟内存其命名为swapfile,保存在/root目录下。然后格式化为交换分区文件和启用交换分区文件。
 # 创建zram虚拟内存
 modprobe zram num_devices=1
 zramctl --find --size 512M --algorithm lz4 --streams 4
 mkswap /dev/zram1
 swapon -p 0 /dev/zram1
 • 加载zram内核模块,并指定设备数量为1。创建一个512MB大小的zram设备,并使用lz4算法进行压缩,同时将数据分成4个流。将zram设备格式化为swap分区,启用zram设备,并设置优先级。
 • swapon -a:启用所有swap分区。
 • swapoff -a:禁用所有swap分区。
 • swapon --show或swapon -s:显示当前系统中已启用的swap分区。
 • swapon -p 或swapon --priority:将指定的swap分区设置为指定的优先级。优先级越高的swap分区,系统越倾向于将内存数据转移到该分区中。
 5.修改cpu频率
 #先安装cpufrequtils工具
 apt-get install cpufrequtils
 # 设置cpu模式
 cpufreq-set -g conservative
 # 调整cpu频率上下限
 cpufreq-set -d 200000
 cpufreq-set -u 800000
 #查看CPU频率和调度信息
 cpufreq-info -o
 #查看cpu当前频率
 cpufreq-info -c 0 -f -m
 cpufreq-info -c 1 -f -m
 cpufreq-info -c 2 -f -m
 cpufreq-info -c 3 -f -m
 #查看当前cpu支持模式
 cpufreq-info -g
 • powersave 是无论如何都只会保持最低频率的所谓“省电”模式;
 • userspace 是自定义频率时的模式,这个是当你设定特定频率时自动转变的;
 • ondemand 默认模式。一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率;
 • conservative 保守模式,会自动在频率上下限调整,和ondemand的区别在于它会按需分配频率,而不是一味追求最高频率;
 • performance 顾名思义只注重效率,无论如何一直保持以最大频率运行。
 • schedutil 可以动态地调整CPU的频率和电压来平衡性能和功耗,会根据负载情况动态调整。
 6.TRIM优化
 fstrim -v /
 • fstrim是一个用于在Linux系统中进行TRIM操作的命令行工具,可以用来清理SSD硬盘上的闲置块,提高SSD硬盘的性能和寿命。
 7.关闭 LED
 echo none > /sys/class/leds/red:os/trigger
 echo none > /sys/class/leds/blue:wifi/trigger
 echo none > /sys/class/leds/green:internet/trigger
 8.可将相应命令加入到rc.local文件开机自启
 • 确保rc.local文件拥有可执行权限:sudo chmod +x /etc/rc.local
 • 编辑:nano /etc/rc.local
 sleep 5
 # 启用交换分区文件:
 mkswap /root/swapfile
 swapon /root/swapfile
 modprobe zram num_devices=1
 zramctl --find --size 512M --algorithm lz4 --streams 4
 mkswap /dev/zram1
 swapon -p 0 /dev/zram1
 sysctl -w vm.swappiness=100
 sync && echo 3 > /proc/sys/vm/drop_caches
 sysctl -w vm.drop_caches=3
 # 关闭 LED
 sleep 35
 echo none > /sys/class/leds/red:os/trigger
 echo none > /sys/class/leds/blue:wifi/trigger
 # echo none > /sys/class/leds/green:internet/trigger
 # 设置cpu模式
 sudo cpufreq-set -g conservative
 # 调整cpu频率上下限
 sudo cpufreq-set -d 200000
 sudo cpufreq-set -u 800000
 # TRIM优化
 fstrim -v /
 # 清理日志
 journalctl --vacuum-size=5M

9.修改系统登录SSH时显示信息
 #编辑文件:nano /etc/motd
 欢迎登录 Debian 服务器!
 #编辑文件:nano /etc/update-motd.d/10-uname
 #!/bin/sh
 # uname -snrvm
 echo "-------------------------- 系统信息 --------------------------"
 echo "操作系统: $(echo "$(sed 's/\\n//g;s/\\l//g' /etc/issue)")" || echo "操作系统: $(uname -o)"
 echo "主机名称: $(hostname)"
 echo "内核版本: $(uname -r)"
 echo "软件包数量: $(dpkg --list | wc -l)"
 echo "CPU架构: $(lscpu| awk '/Architecture:/ {print $NF}')"
 echo "CPU核心数: $(lscpu| awk '/^CPU\(s\)/ {print $2}')"
 echo "核心线程数: $(lscpu| awk '/Thread\(s\) per core:/ {print $NF}')"
 echo "CPU温度: $(cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null | awk '{print int($1/1000)}')°C"
 if output=$(mmcli -m 0 2>&1) && [ -n "$output" ]; then
 get_modem() { mmcli -m 0 2>/dev/null | grep -oiP "(?<=$1\s).*" | awk 'NR==1{print}'; };
 echo "-------------------------- Modem信息 --------------------------"
 [ -n "$(get_modem "own:")" ] && echo "SIM号码: $(get_modem "own:" | sed 's/^86//')"
 [ -n "$(get_modem "operator name:")" ] && echo "运营商: $(get_modem "operator name:" | sed 's/CHN-UNICOM/中国联通/g; s/UNICOM/中国联通/g; s/CMCC/中国移动/g; s/CT/中国电信/g')"
 [ -n "$(get_modem "state:")" ] && echo "SIM状态: $(get_modem "state:")"
 [ -n "$(get_modem "power state:")" ] && echo "数据开关: $(get_modem "power state:")"
 [ -n "$(get_modem "access tech:")" ] && echo "访问类型: $(get_modem "access tech:")"
 [ -n "$(get_modem "signal quality:")" ] && echo "信号强度: $(get_modem "signal quality:")"
 [ -n "$(get_modem "equipment id:")" ] && echo "设备ID: $(get_modem "equipment id:")"
 fi
 ip_address=$(ip addr show | grep -w inet | awk '{print $2}' | cut -d/ -f1)
 if [ -n "$ip_address" ]; then
 echo "-------------------------- 网络信息 --------------------------"
 echo "内网IP:"
 echo "$ip_address"
 curl_output=$(curl -s -m 6 cip.cc 2>&1 | sed '/^$/d') && [ -n "$curl_output" ] && {
 echo "公网IP:"
 echo "$curl_output"; };
 fi
 interfaces=$(ifconfig | awk '/^[^ ]/ && !/lo/ {gsub(/:/,"");print $1}')
 if [ -n "$interfaces" ]; then
 echo "-------------------------- 接口信息 --------------------------"
 echo "网络接口: "$interfaces""
 convert_unit() { size=$1; awk 'BEGIN{ printf "%.2f %s", ('$size'/1024/1024), "MB" }'; }
 for interface in $interfaces; do
 get_bytes() { ifconfig $interface | grep -E "$1 .*bytes|$1 bytes" | sed -E "s/.*$1 bytes:([0-9]+).*/\1/;s/.*bytes ([0-9]+) .*/\1/"; }
 rx=$(get_bytes RX)
 tx=$(get_bytes TX)
 [ $rx -gt 0 -o $tx -gt 0 ] && echo "$interface 接收: $(convert_unit $rx) 发送: $(convert_unit $tx)"
 done;fi
 echo "-------------------------- 内存信息 --------------------------"
 mmc_info=$(cat /sys/class/mmc_host/mmc0/mmc0\:0001/life_time)
 [ -n "$mmc_info" ] && echo "内存寿命: $mmc_info"
 echo "硬件内存: $(free -m | awk 'NR==2{printf "%s/%sMiB (%.2f%%)\n", $3,$2,$3*100/$2 }')"
 swap_info=$(free -m | awk 'NR==3{printf "%s/%sMiB (%.2f%%)\n", $3,$2,$3*100/$2}')
 [ ! -z "$swap_info" ] && echo "虚拟内存: $swap_info" && sudo swapon --show
 echo "-------------------------- 磁盘信息 --------------------------"
 df -h
 echo "-------------------------- 运行信息 --------------------------"
 uptime=$(uptime | sed 's/up/已运行:/g; s/mins/分钟/g; s/min/分钟/g; s/days/天/g; s/day/天/g; s/users/个登录用户/g; s/user/个登录用户/g; s/load average/平均负载/g')
 echo "本地时间: $uptime"
 echo ""
 • 注:如果用其他软件复制粘贴进去,编码不一样可能会出错!
 10.一些配置内核参数的正or负优化
 # 编辑nano /etc/sysctl.conf
 vm.swappiness=100
 vm.vfs_cache_pressure=50
 vm.panic_on_oom=0
 vm.dirty_ratio=50
 vm.dirty_background_ratio=30
 vm.min_free_kbytes=10240
 vm.max_map_count=262144
 vm.dirty_expire_centisecs=3000
 vm.dirty_writeback_centisecs=15000
 net.ipv6.conf.all.forwarding=1
 net.ipv6.conf.all.proxy_ndp=1
 net.ipv6.conf.all.accept_ra=2
 net.ipv4.ip_forward=1
 net.core.somaxconn=2048
 net.ipv4.tcp_max_syn_backlog=8192
 net.core.netdev_max_backlog=32768
 net.ipv4.tcp_keepalive_time=600
 net.ipv4.icmp_echo_ignore_all=0
 net.ipv4.tcp_abort_on_overflow=0
 net.ipv4.tcp_fack=1
 net.ipv4.tcp_tw_reuse=1
 net.ipv4.tcp_sack=1
 net.ipv4.tcp_window_scaling=1
 net.ipv4.tcp_timestamps=1
 net.ipv4.tcp_fastopen=3
 net.ipv4.tcp_slow_start_after_idle=0
 net.ipv4.tcp_fin_timeout=30
 net.ipv4.tcp_keepalive_intvl=30
 net.ipv4.tcp_keepalive_probes=3
 net.ipv4.ip_default_ttl=128
 net.core.message_burst=10
 net.core.busy_read=50
 net.core.optmem_max=20480
 net.ipv4.tcp_challenge_ack_limit=9999
 net.ipv4.tcp_max_orphans=32768
 net.ipv4.tcp_max_tw_buckets=32768
 net.ipv4.udp_rmem_min=8192
 net.ipv4.udp_wmem_min=8192
 net.ipv4.ip_local_port_range=1024 65000
 net.ipv4.tcp_mem=131072 262144 524288
 net.ipv4.udp_mem=262144 524288 1048576
 net.ipv4.tcp_wmem=8760 256960 4088000
 net.ipv4.tcp_rmem=8760 256960 4088000
 net.core.rmem_default=524288
 net.core.rmem_max=8388608
 net.core.wmem_default=524288
 net.core.wmem_max=8388608
 在修改 /etc/sysctl.conf 文件后,需要运行以下命令使其生效:
 sysctl -p 



















