注意:以下命令请先在闲置VPS测试充分再应用到生产环境的机器上!

查看系统启动时间

systemd-analyze

用df -h检查磁盘使用情况

使用命令 df -h 来查看各个分区的磁盘使用情况。

用ncdu分析一下磁盘占用情况

apt install ncdu ncdu / 分析磁盘占用,方向键控制,d删除,q退出

卸载不需要的软件包

使用 apt-get autoremove(Debian系列)来卸载不再需要的软件包。

一键纯净更新

apt update -y && apt full-upgrade -y && apt autoremove -y && apt autoclean -y

安装常用工具

apt install -y curl wget sudo

一键清理垃圾

sudo apt autoremove –purge -y sudo apt clean -y sudo apt autoclean -y sudo apt remove –purge $(dpkg -l awk ‘/^rc/ {print $2}’) -y sudo journalctl –rotate sudo journalctl –vacuum-time=1s sudo journalctl –vacuum-size=50M sudo apt remove –purge $(dpkg -l awk ‘/^ii linux-(imageheaders)-[^ ]+/{print $2}’ grep -v $(uname -r sed ‘s/-.*//’) xargs) -y

查看Debian版本

cat /etc/debian_version 视频讲解:   其他一键清理: sudo apt-get clean; sudo apt-get autoclean; sudo apt-get autoremove; sudo journalctl –rotate; sudo journalctl –vacuum-time=1s; sudo dpkg -l grep ‘^rc’ awk ‘{print $2}’ sudo xargs dpkg –purge; sudo rm -rf /tmp/*; sudo rm -rf /var/tmp/*; sudo apt-get autoremove –purge; docker system prune -a -f; docker volume prune -f; docker network prune -f; docker image prune -a -f; docker container prune -f; docker builder prune -f; rm -rf ~/Downloads/*; rm -rf ~/.cache/thumbnails/*; rm -rf ~/.mozilla/firefox/*.default-release/cache2/*; sudo apt-get clean; dpkg –list grep linux-image grep -v `uname -r` awk ‘{print $2}’ xargs sudo apt-get remove –purge -y 请注意: docker system prune 和其他 Docker 清理命令中的 -f 标志用于强制执行而不提示确认。 最后的内核清理部分可能会匹配并尝试删除除当前内核外的所有内核版本,请确保这部分命令适合您的环境。

本文将介绍使用官方源和第三方源在 Debian 12 和 Ubuntu 24.04 安装最新版 Nginx + PHP + MySQL 的教程,并且可以自行选择 PHP 版本。 PS:本文同时适用于 Debian 11 Bullseye,Ubuntu 20.04 Focal 以及 Ubuntu 22.04 Jammy 以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。

1、更新系统并安装部分必要软件

1
2
3
apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

如果您通过 iso 方式安装 Debian 12 并且设置了 root 密码,则默认不带 sudo 包,使用 apt install sudo 安装即可

2、增加烧饼博客打包的 Nginx 源并安装

这里我们推荐烧饼博客团队打包的 Nginx 源,这货是在官方 Nginx 打包组的基础上,保持更新最新版本的 Nginx 以及 OpenSSL。

2.1 首先增加 GPG Key

1
curl -sSL https://n.wtf/public.key  gpg --dearmor > /usr/share/keyrings/n.wtf.gpg

2.2 然后增加 Nginx 源

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/n.wtf.gpg] https://mirror-cdn.xtom.com/sb/nginx/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/n.wtf.list

国内机器可以用清华 TUNA 的国内源:

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/n.wtf.gpg] https://mirrors.tuna.tsinghua.edu.cn/u.sb/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/n.wtf.list

2.3 接着更新并安装 Nginx

1
2
apt update
apt install nginx-extras -y

安装完毕后,我们可以使用 nginx -V 命令看到 Nginx 已经是最新的 1.27.0 主线版了:

1
2
3
4
root@debian ~ # nginx -V
nginx version: nginx-n.wtf/1.27.2
built with OpenSSL 3.4.0 22 Oct 2024
TLS SNI support enabled

3、增加 Ondřej Surý 大神打包的 PHP 源并安装 PHP 8.x

Ondřej Surý 大佬打包的 PHP 源更好用,Ubuntu 的 PPA for PHP 就是这位大佬做的,当然少不了 Debian 的源了,下面一步一步来。

3.1 Debian 和 Ubuntu 安装 LEMP 区别

唯一区别就是 PHP 的安装添加源方法不一样,其他的步骤都一毛一样。

3.2 加入大神做好的源

Debian

Ubuntu

1
2
wget -O /usr/share/keyrings/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

这个大神的 GPG 密钥每两年会更新一个新的,如果 GPG 密钥失效,重新下载 GPG 密钥即可。 国内机器可以用南京大学 的国内源:

1
2
wget -O /usr/share/keyrings/php.gpg https://mirror.nju.edu.cn/sury/php/apt.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/php.gpg] https://mirror.nju.edu.cn/sury/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

Ubuntu 的 PPA 暂时没有国内镜像,可以使用 USTC 反代的方式:

1
2
curl "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c"  gpg --dearmor > /usr/share/keyrings/php.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/php.gpg] https://launchpad.proxy.ustclug.org/ondrej/php/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

如果 GPG 密钥失效,请查看最新的 GPG 密钥

3.3 更新系统

1
2
apt update
apt upgrade -y

3.4 安装自己需要的 PHP 版本

这个源目前默认的 PHP 是 8.4.x,如果您需要其他版本,那么请修改对应的 PHP 版本号 (注意配置文件哦)。 这里举例 WordPress 需要的部分 PHP 包: 安装 PHP 8.4.x:

1
apt install php8.4-{fpm,cli,mysql,curl,gd,mbstring,xml,zip,imap,opcache,soap,gmp,bcmath} -y

安装 PHP 8.3.x:

1
apt install php8.3-{fpm,cli,mysql,curl,gd,mbstring,xml,zip,imap,opcache,soap,gmp,bcmath} -y

安装 PHP 8.2.x:

1
apt install php8.2-fpm php8.2-cli php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-imap php8.2-opcache php8.2-soap php8.2-gmp php8.2-bcmath -y

安装 PHP 8.1.x:

1
apt install php8.1-fpm php8.1-cli php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-imap php8.1-opcache php8.1-soap php8.1-gmp php8.1-bcmath -y

以下版本 PHP 已经 EOL,PHP 官方不再提供支持,请尽快更新您的程序兼容最新的 PHP,如果您的程序还未兼容,建议鞭策开发者 安装 PHP 8.0.x:

1
apt install php8.0-fpm php8.0-cli php8.0-mysql php8.0-curl php8.0-gd php8.0-mbstring php8.0-xml php8.0-zip php8.0-imap php8.0-opcache php8.0-soap php8.0-gmp php8.0-bcmath -y

安装 PHP 7.4.x:

1
apt install php7.4-fpm php7.4-cli php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc php7.4-zip php7.4-json php7.4-imap php7.4-opcache php7.4-soap php7.4-gmp php7.4-bcmath -y

安装 PHP 7.3.x:

1
apt install php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-opcache

安装 PHP 7.2.x (PHP 7.2 开始已经不支持 mcrypt 组件):

1
apt install php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache

安装 PHP 7.1.x:

1
apt install php7.1-fpm php7.1-mysql php7.1-curl php7.1-gd php7.1-mbstring php7.1-mcrypt php7.1-xml php7.1-xmlrpc php7.1-zip php7.1-opcache

安装 PHP 7.0.x:

1
apt php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-xmlrpc php7.0-zip php7.0-opcache

安装 PHP 5.6.x:

1
apt install php5.6-fpm php5.6-mysql php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-xml php5.6-xmlrpc php5.6-zip php5.6-opcache

如果希望安装其他组件,可以通过搜索看看有没有对应的包:

1
apt-cache search php8.4*  grep php8.4

修改 php.ini 防止跨目录攻击,如果安装的 PHP 8.4.x 请修改 /etc/php/8.4/fpm/php.ini PHP 7.4.x 请对应修改 /etc/php/7.4/fpm/php.ini

1
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/8.4/fpm/php.ini 

修改 php.ini 增加上传大小限制,比如我们设置 10MB:

1
2
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 10M/' /etc/php/8.4/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 10M/' /etc/php/8.4/fpm/php.ini

您也可以同时安装多个 PHP 版本,然后使用以下命令选择系统默认的 PHP 版本:

1
update-alternatives --config php

3.5 重启 PHP 和 Nginx

1
systemctl restart php8.4-fpm

对应 PHP 7.4.x 命令如下:

1
systemctl restart php7.4-fpm

Nginx 参考配置文件如下,新建立个 /etc/nginx/sites-available/example.com.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat >> /etc/nginx/sites-available/example.com.conf << EOF
server {
listen 80;
listen [::]:80;

# 指定网站目录,可根据自己情况更换,建议放在 /var/www 目录下
root /var/www/example.com;
index index.php index.html index.htm;

# 默认第一个域名,替换 example.com 为您的域名
server_name example.com;

location / {
try_files \$uri \$uri/ =404;
}

# 开启 PHP8.4-fpm 模式,如需要安装 PHP 7.4.x 请修改为 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
}
EOF

然后把这个配置文件软链接到 /etc/nginx/sites-enabled 目录使其生效:

1
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

到这里基本没有问题,可以直接重新加载 Nginx:

1
2
nginx -t
nginx -s reload

或者暴力点直接重启 Nginx:

1
systemctl restart nginx

我们的目录在 /var/www/example.com,我们先创建这个目录:

1
mkdir -p /var/www/example.com

然后创建一个 phpinfo.php 并输入 phpinfo() 函数:

1
2
3
cat >> /var/www/example.com/phpinfo.php << EOF
<?php phpinfo(); ?>
EOF

好了,此时在浏览器输入 http://example.com/phpinfo.php,如果看到经典的 phpinfo 页面则说明安装成功,如果不成功,请仔细对比步骤查找哪里出错。 效果如下: Debian Install LEMP PHPINFO

4、安装 MariaDB

自从 Debian 9.x Stretch 开始,Debian 已经默认使用 Mariadb,所以我们不做对于 MySQL 和 MariaDB 的争论,直接跟着开源社区走即可。

4.1 首先,添加并导入 Mariadb 的官方源

下载 GPG Key:

1
curl -sSL https://mariadb.org/mariadb_release_signing_key.asc  gpg --dearmor > /usr/share/keyrings/mariadb.gpg

然后添加 MariaDB 的源:

Debian

Ubuntu

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mariadb.gpg] https://mirror-cdn.xtom.com/mariadb/repo/11.4/debian $(lsb_release -sc) main" > /etc/apt/sources.list.d/mariadb.list

国内可以用清华 TUNA 的源:

Debian

Ubuntu

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mariadb.gpg] https://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/11.4/debian $(lsb_release -sc) main" > /etc/apt/sources.list.d/mariadb.list

您也可以在这儿找到更多的 MariaDB 源。

4.2 接着更新一下系统

1
apt update

4.3 然后直接安装最新稳定版 MariaDB

1
apt install mariadb-server mariadb-client

安装完毕后强烈推荐使用 mariadb-secure-installation 命令做一次安全设置。

4.4 创建数据库并测试

开启数据库之前,您可以使用 pwgen 这个小工具或者随机密码生成器生成一个强大的随机密码,比如 32 位,然后随意挑选一个使用

1
2
apt install pwgen
pwgen 32

使用 Mariadb root 用户登陆,因为默认使用 Unix domain socket 模式,所以本机不需要 MySQL root 密码即可登录:

1
mariadb -u root

创建数据库 example_database

1
CREATE DATABASE example_database DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建用户名 example_user 并赋予权限:

1
GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY '这里改成您要设置的强大的没人能猜出来的随机的密码';

刷新 MySQL 权限:

1
FLUSH PRIVILEGES;

没问题以后就可以退出了:

1
EXIT;

新建立一个 /var/www/example.com/mysql-test.php 文件并测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cat >> /var/www/example.com/mysql-test.php << EOF
<?php
\$dbname = 'example_database'; //MySQL 数据库名
\$dbuser = 'example_user'; //MySQL 用户名
\$dbpass = '您的强大的没人可以猜出来的密码';
\$dbhost = 'localhost'; //安装在本地就用 localhost
\$link = mysqli_connect(\$dbhost, \$dbuser, \$dbpass) or die("Unable to Connect to '\$dbhost'");
mysqli_select_db(\$link, \$dbname) or die("Could not open the db '\$dbname'");
\$test_query = "SHOW TABLES FROM \$dbname";
\$result = mysqli_query(\$link, \$test_query);
\$tblCnt = 0;
while(\$tbl = mysqli_fetch_array(\$result)) {
\$tblCnt++;
#echo \$tbl[0]."&lt;br /&gt;\n";
}
if (!\$tblCnt) {
echo "MySQL is working fine. There are no tables.";
} else {
echo "MySQL is working fine. There are \$tblCnt tables.";
}
?>
EOF

创建完毕后访问 http://example.com/mysql-test.php 如果出现 MySQL is working fine. There are no tables. 则说明 MariaDB 工作正常。

5、安装 MySQL 8.0 (可选)

如果您必须使用某些 MySQL 8.0 才有的功能,那么可以按照 MySQL 官网的教程安装 MySQL 8.0。 *注意:*除非您知道您在做什么,否则不要同时安装 MySQL 和 MariaDB。

5.1 添加 apt 源

1
2
wget https://repo.mysql.com/mysql-apt-config_0.8.33-1_all.deb
dpkg -i mysql-apt-config_0.8.33-1_all.deb

国内的机器可以在添加完成后修改为清华 TUNA 源,您可以修改 /etc/apt/sources.list.d/mysql-community.list 文件,替换成如下内容:

1
deb https://mirrors.tuna.tsinghua.edu.cn/mysql/apt/debian $(lsb_release -sc) mysql-5.6 mysql-5.7 mysql-8.0 mysql-tools

5.2 安装 MySQL 8.0

1
2
apt update
apt install mysql-server -y

默认 MySQL 会安装最新的 8.0 版本,如果您需要更低的版本,比如 5.6 或 5.7,可以使用如下命令:

1
dpkg-reconfigure mysql-apt-config

您可能需要设置一个强大的 root 密码,接下来的步骤和 MariaDB 基本相同,把 mariadb 命令换成 mysql 命令即可,本文不再赘述。 好了,以上就是基本的 Debian 12.x “bookworm” 安装最新版 LEMP 的教程,如有问题可以随时发评论留言讨论。

mdserver-web,界面类似宝塔,开源、免费。支持的系统:Centos、Debian、Ubuntu等。 主要插件介绍: OpenResty – 轻量级,占有内存少,并发能力强。 PHP[52-81] – PHP是世界上最好的编程语言。 MySQL – 一种关系数据库管理系统。 MongoDB – 一种非关系NOSQL数据库管理系统。 phpMyAdmin – 著名Web端MySQL管理工具。 Memcached – 一个高性能的分布式内存对象缓存系统。 Redis – 一个高性能的KV数据库。 CSVN – 最流行的SVN代码共享管理软件。 PureFtpd – 一款专注于程序健壮和软件安全的免费FTP服务器软件。 Gogs – 一款极易搭建的自助Git服务。 Rsyncd – 通用同步服务。 自动安装

1
curl -fsSL  https://raw.githubusercontent.com/midoks/mdserver-web/master/scripts/install.sh  bash

或者

1
curl -fsSL https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/scripts/install.sh  bash

脚本更新

1
curl -fsSL  https://raw.githubusercontent.com/midoks/mdserver-web/master/scripts/update.sh  bash

开源地址:https://github.com/midoks/mdserver-web Debian更换软件源

1
sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list

所有主机信息仅是为及时分享并收录,不做推荐!

bash <(curl -sSL https://linuxmirrors.cn/main.sh)   原始命令 bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/ChangeMirrors.sh) or bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) 相关注意事项# 1.需使用 ROOT 用户执行脚本 切换命令为 sudo -i 或 su root。不同系统使用的命令不同,因为有些系统没有在初始安装时为 ROOT 账户设置密码(例如 Ubuntu),故需要使用 sudo -i 命令来切换至 ROOT 2.建议使用 SSH 远程工具 如果你使用的系统终端界面无法正常显示中文内容那么将导致无法查看交互内容。部分系统会自动开启 SSH 服务,否则请参考启用方法 3.如果是在新系统上首次执行脚本 当前执行方式依赖 curl 指令获取脚本内容并执行,但部分操作系统没有预装此软件包,届时则会报错 Command not found,安装方法详见常见问题。还可自行复制源码至本地新建任意名称的 .sh 脚本,粘贴源码内容后通过 bash 指令手动执行

最近 bt.sy 推出了 9.2.0 的开心版,不仅Windows版和aaPanel不再要求自助授权。 连 9.2.0 开始都没有再要求了。这家开心版很稳定,但最近就是老是被打,总有点担心堡塔搞事情 现在 safe.bt.sy 写道: 开心版本来就是为了开心而使用,因打击个别偷插件的用户而影响大家,属实是不对的,所以现在取消授权机制拉! 因此可以直接通过下面的指令直接安装了,装完即用,无需担心过期。 Centos安装命令:

1
yum install -y wget && wget -O install.sh http://io.bt.sy/install/install_6.0.sh && sh install.sh

试验性Centos/Ubuntu/Debian安装命令 独立运行环境(py3.7) 可能存在少量兼容性问题 不断优化中:

1
curl -sSO http://io.bt.sy/install/install_panel.sh && bash install_panel.sh

Ubuntu Deepin安装命令:

1
wget -O install.sh http://io.bt.sy/install/install-ubuntu_6.0.sh && sudo bash install.sh

Debian安装命令:

1
wget -O install.sh http://io.bt.sy/install/install-ubuntu_6.0.sh && bash install.sh

Fedora安装命令:

1
wget -O install.sh http://io.bt.sy/install/install_6.0.sh && bash install.sh

Linux面板 9.2.0 升级企业版命令(所有官方版 / 开心版 包括低版本 都可以执行这个升级到 9.2.0 开心版):

1
curl https://io.bt.sy/install/update_panel.shbash

真是个接地气的大佬,感谢王煎饼大佬制作的DD脚本。我们又多了一个选择。可以重装Linux和Windows。互相横跳。很纯净,bash,curl等组件都要自己装,观察一段时间未来会整合到我的脚本工具箱中。该大佬近一年还是比较活跃的一直在维护项目。 作者源地址

  海外 curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh   国内 curl -O https://mirror.ghproxy.com/https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh Linux系统 bash reinstall.sh debian 12 bash reinstall.sh ubuntu 22.04 常用版本 centos 789 (89 为 stream 版本) oracle 789 alma 89 rocky 89 fedora 383940 debian 101112 opensuse 15.5tumbleweed ubuntu 20.0422.0424.04 alpine 3.163.173.183.19 kali arch gentoo   Windows系统 bash reinstall.sh windows --image-name 'Windows 7 Ultimate' --lang zh-cn 常用版本 Windows 7 Ultimate Windows 10 Enterprise LTSC 2021 Windows 11 Pro Windows Server 2022 SERVERDATACENTER 初始端口用户名密码

系统

用户名

密码

Linux

root

123@@@

Windows (iso)

administrator

123@@@

关注原作者GitHub地址 https://github.com/bin456789/reinstall

前言

域名解析这个东西,一般来说,我们购买域名后,大部分域名提供商会提供一个免费DNS解析。例如阿里云DNS,腾讯云Dnspod等等,但相对来说,大部分提供商给的DNS解析不算最优解,甚至存在一些不稳定因素。 我在建站上也摸爬滚打了颇久,各种各样的DNS解析服务也用过不少,所以我在这里写一下我自己有关DNS解析选择的观点,仅供参考,但确实算真实使用体验。

按需选择

相对来说,不同地区的主机在免费解析上存在不同的选择,选对一个符合你主机情况的解析是对你网站的访客很有帮助的。

如果你的主机在国外

Cloudflare

“Cloudflare“,一个让诸多站长向往的(白嫖之地)DNS解析服务提供商。目前本博客站域名(takagi.icu)也是通过此DNS解析。Cloudflare虽然在国内素有“减速云”之称(SaaS解析法除外),但其实一般你不开它的CDN,国内解析速度还是很不错的,其配套服务也让很多站长心动,例如Worker,Page,自带DDos防御(需要开启反向加速CDN),域名重定向与访客规则,免费的通配符SSL证书,都是一个对于新手站长来看,很不错的选择。 Cloudflare解析优势:

  • 支持CDN{加速国内减速}
  • 自带DDos防御服务(I’m Under Atteck!确信)
  • 支持解析 A、AAAA、CNAME、MX、LOC、SRV、SPF、TXT、NS、CAA、PTR、CERT、DNSKEY、DS、NAPTR、SMIMEA、SSHFP、TLSA、URI
  • 支持DNSSEC(高深莫测)
  • 免费版支持一部分其他地方收费的配套服务,例如Worker,Page,访客规则
  • 管理后台基本完全支持中文(泪目)

Cloudflare解析劣势:

  • 国内反向CDN加速(免费版解析使用国际节点,开Pro版一般就可以实现平衡?)
  • 本身存在滥用现象(所以有点被针对),导致其服务在国内使用状况不稳定(有时候管理后台都上不去)
He.net DNS

这家DNS解析最大的好处是贯彻了苏联精神“简单就是美”简洁,快速,稳定。作为世界最大的骨干网参与建设者,He.net提供的免费DNS解析服务相当稳定,在国内虽然不算很快,但绝对能做到稳定。在换用Cloudflare之前,我一直在用 He.net DNS,国内解析速度真的挺稳当的,如果你不喜Cloudflare,这个也是一个不错的选择。 He.net DNS优势:

  • 稳如一匹老狗,十分稳定,国内访问稳定
  • 支持解析A、AAAA、CNAME、MX、NS、TXT、CAA、AFSDB、HINFO、RP、LOC、NAPTR、PTR、SSHFP、SPF、SRV(除了DNSSEC基本都支持)
  • 支持SlaveDNS,即备用DNS,让你的DNS解析“高枕无忧”(没用过,不会用QAQ)
  • 提供了免费DDNS(动态域名解析)和IPv6 地址接入服务(没用过,但我大受震撼)
  • TTL最低可设置为5分钟(300)

He.net DNS劣势:

  • 上古界面的管理后台(所以手机没有适配)
  • 全英文管理后台(其实也不算很难)

如果你的主机在国内

这里说的意思是你的主机在国内,而且主要面对国内访客,如果主机在国内还想用免费解析的情况下对国外访客提供不错的支持(那买国内主机干嘛),还是不如去用国际DNS解析(确信)

首先你要知道的
  • 大部分国内DNS解析都需要你的域名有备案
  • 部分国内DNS解析跟域名服务捆绑(点名表扬阿里云)
  • 免费的一般都比较一般
Dnspod(腾讯云)

相对来说,腾讯云还算良心,在收购了帝思普后,向用户提供免费的DNS解析服务,国内速度还是不错的,解析上也确实还行,我刚开始建站的时候,就是使用Dnspod做解析的,但是后来因为不知为什么,当时的解析突然炸了(似乎是因为全国外主机解析?)全部访问直接阻断,总之感觉这个对国外主机解析不大友好,遂更换为He.net DNS,看个人喜好吧,域名备案的比较推荐去用。 Dnspod的优势:

  • 国内三网优化解析,教育网优化
  • 安全(非常安全啊,改一条小小的参数都需要手机微信小程序授权一次)
  • 全中文全UA优化,国内用户友好,新手小白友好,手机用户友好
  • 相比国内其他DNS解析,免费中良心的一家
  • 免费的网站D监控,并可短信或邮件推送用户网站工作情况(免费探针罢了)
  • 智能线路切换?(说白了就是用户设定好,一条不通走另一条,都不通的话就寄了)
  • 三网分线路解析(可针对移动用户设定一条线路,联通用户走一条线路等等)

Dnspod的劣势:

  • 谷歌爬取存在问题(谷歌站点爬虫会爬不到或者错误)
  • 免费套餐虽然不错,不过相对国际上的肯定不够看(不错了其实)
阿里云DNS

没用过,毕竟是捆绑阿里云注册域名的,也就是说你首先得去阿里云购买域名才能免费用,而且目测感觉一般,声誉也一般,相对上面的Dnspod感觉不够看。 阿里云DNS的优势:

  • 国内解析国内肯定快(确信)

阿里云DNS的劣势:

  • 捆绑域名销售,不买他家域名不能免费使用
  • 网络声誉一般般
华为云DNS

也没用过,毕竟前面的已经满足我需求了,虽然华为云的看着比Dnspod好一点

DNS.la

没用过,据说要备案才能用,我又没备案,算了。 总之,解析还是要按需来,免费的DNS解析肯定不能做到尽善尽美(所以我们要氪金买Pro),相信你看了上面的内容后,应该会有一点思路(新手小白估计没看懂?) 文章转载请注明出处

WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。 近几年经济增速开始放缓,科技企业的成本意识有所增强,安全支出更加理性,这使得国内的开源安全项目得到了一定发展,从 github waf 相关 topic 的活跃度来看,排名靠前的国产项目超过了海外项目。 在互联网上公开能找到资料的 WAF 项目少说也有几千个,但其中绝大部分偏实验 Demo 的性质,工程性不足,缺少部署案例,没有经历过大规模流量的验证,实际能称得上产品的项目不到百分之一。翻阅了大量资料,对这几十款 WAF 产品进行实际部署测试后,我选取了其中十个具有代表意义的项目,下文将逐一进行介绍。

本文目录

评价 WAF 的常用指标

作为网站管理员,应该如何选择一款适合自己的 WAF ,以下是几个最常关注的指标 防护效果:主要是两个维度,能不能防住攻击,会不会影响普通用户 技术先进性:防护引擎的技术竞争力,是否具备对抗高级攻击的能力 项目质量:本文将以功能完整性、开源代码质量、文档完整性等角度作为评价依据 社区认可度:反映了项目在用户社区中的声誉和影响力,本文将以 GitHub Star 数作为评价依据 社区活跃度:是潜力的体现,活跃度越高发展越快,本文将以社区用户的参与度和作者维护项目的积极性作为评价依据

项目清单

先来看综合评分表

项目名称

开发者

综合评分

ModSecurity

SpiderLabs

?????

雷池社区版

长亭科技

????

coraza

coraza

????

南墙

友安科技

???

JANUSEC

JANUSEC

???

VeryNginx

loveshell

??

httpwaf

闲人

??

锦衣盾

jx-sec

?

NGX_WAF

ADD-SP

?

NAXSI

NBS SYSTEM

?

ModSecurity

主页:https://www.modsecurity.org/ ModSecurity 是老牌开源 WAF 引擎,使用群体广,早年只适用于 Apache ,在 2.X 重构后目前也可以支持 IIS 和 Nginx 。作为 WAF 引擎,相比一体化的 WAF 项目,需要二次开发才能试用,对使用者来说成本略高。ModSecurity 被不少其他开源 WAF 作为核心引擎所集成,在开源社区认可度高,实际防护以正则规则为主,覆盖相对全面,但容易被绕过,前段时间被母公司抛弃了,未来是否会继续维护下去暂未可知。

  • 防护效果:基础检测效果不错,但是规则对国内的环境不友好,容易误报
  • 技术先进性:虽然没有高级对抗能力,但在技术圈认可度高,被众多开源项目集成,生态即技术壁垒
  • 项目质量:无控制台,项目完全开源,文档丰富
  • 社区认可度:6400 star ,是目前全球 star 数最高的 WAF 项目
  • 社区活跃度:持续有更新,近一年更新过 3 个版本

雷池社区版

主页:https://waf-ce.chaitin.cn/ 雷池社区版是长亭科技根据企业版雷池 Web 应用防护系统提炼而来,核心检测能力由长亭首创的智能语义分析算法驱动。项目开源了语义分析算法的核心引擎和相关安全插件,控制台未开源。优点在于防护效果好,项目迭代快,界面清爽好用,缺点在于社区版相比企业版功能较少,但能满足 WAF 的基本需求。

  • 防护效果:对通用漏洞和非通用漏洞的防护效果都不错,误报少
  • 技术先进性:核心技术是语义分析算法,相比正则规则的可对抗性更高、性能更好
  • 项目质量:具备 WAF 各项基础能力,项目未完全开源,文档相对完善
  • 社区认可度:1500 star ,装机量 4000+
  • 社区活跃度:持续有更新,近一年更新过 15 个版本

Coraza

主页:https://coraza.io/ Coraza 是一个开源、高性能的 WAF 引擎,使用 Go 语言编写,支持 ModSecurity SecLang 规则集,并且与 OWASP 核心规则集完全兼容,与 ModSecurity 一样不提供界面,只作为检测引擎,需要二次开发才能试用,有机会成为 ModSecurity 的替代品。  

  • 防护效果:基础检测能力尚可,缺少对于非通用漏洞的防护规则,容易误报
  • 技术先进性:检测规则依赖 LibInjection 、ModSecurity 、OWASP 项目
  • 项目质量:无控制台,项目完全开源,文档丰富
  • 社区认可度:1200 Star
  • 社区活跃度:持续有更新,近一年更新过 4 个版本

VeryNginx

主页:https://github.com/alexazhou/VeryNginx VeryNginx 是一款与 Nginx 深度集成的 WAF 扩展程序,相比其他 Nginx 扩展,VeryNginx 是为数不多提供了控制台的 WAF 项目。VeryNginx 没有提供核心检测引擎,规则部分依赖第三方库。VeryNginx 在 github 有 5900 star ,是国产 WAF 项目中 star 数最高的项目,最大的问题是该项目年久失修,规则库也多年不更新,项目基本停止维护,非常可惜。

  • 防护效果:规则简单,具备基础防护能力,但有点过时,规则库 7 年未更新过
  • 技术先进性:检测规则以来第三方的 ngx_lua_waf 项目
  • 项目质量:具备 WAF 各项基础能力,项目完全开源,文档相对完善
  • 社区认可度:5900 Star
  • 社区活跃度:4 年未更新

NAXSI

主页:https://github.com/nbs-system/naxsi NAXSI 是一款专为 Nginx 而生的 WAF 引擎,输出形态是 Nginx 动态扩展,编译后修改 Nginx 配置文件即可生效。NAXSI 不提供控制台,作为 WAF 引擎,用起来没有 ModSecurity 那么麻烦,但相比一体化的 WAF 项目使用成本任然较高。检测能力依赖 LibInjection 项目,只支持 SQL 注入和 XSS 检测,不推荐在线上使用。

  • 防护效果:对通用漏洞的检出率比较高,但误报也高的离谱,仅支持 SQL 注入和 XSS 检测
  • 技术先进性:核心能力依赖了 LibInjection 项目
  • 项目质量:无控制台,项目完全开源,文档丰富
  • 社区认可度:4300 Star
  • 社区活跃度:偶尔有更新,基本不维护

NGX_WAF

主页:https://github.com/ADD-SP/ngx_waf NGX_WAF 是一款国产的 Nginx 扩展类型的 WAF 引擎项目(这类的项目真多)。NGX_WAF 不提供控制台,作为 WAF 引擎,用起来没有 ModSecurity 那么麻烦,但相比一体化的 WAF 项目使用成本任然较高。NGX_WAF 的核心能力基于 LibInjection 和 ModSecurity ,和其他引用了第三方开源规则库的 WAF 项目相同,海外规则库对国内互联网环境适配性不太好,容易误报,缺少针对非通用性漏洞的规则。

  • 防护效果:基础检测能力尚可,缺少对于非通用漏洞的防护规则,容易误报
  • 技术先进性:检测规则依赖 LibInjection 和 ModSecurity 项目
  • 项目质量:无控制台,项目完全开源,文档较少
  • 社区认可度:1300 Star
  • 社区活跃度:偶尔有更新,近一年更新过 2 个版本

南墙

主页:https://waf.uusec.com/ 南墙 WEB 应用防火墙(简称:uuWAF )是有安科技推出的一款全方位网站防护产品。通过有安科技专有的 WEB 入侵异常检测等技术,结合有安科技团队多年应用安全的攻防理论和应急响应实践经验积累的基础上自主研发而成,缺点在于不能升级,有新版本要铲掉重装。

  • 防护效果:对 SQL 、XSS 、RCE 、LFI 这四种攻击检测效果不错,缺少对于非通用漏洞的防护规则
  • 技术先进性:具备基础的语义检测能力,支持通过机器学习对流量建模
  • 项目质量:具备 WAF 各项基础能力,项目不开源,文档相对完善
  • 社区认可度:198 Star
  • 社区活跃度:迭代较快,近一年更新过 7 个版本

JANUSEC

主页:https://www.janusec.com/ JANUSEC 是一个开源的 Web 应用安全网关软件,优势在于功能丰富,同时具备负载均衡、WAF 、身份认证、证书管理、堡垒机等功能,缺点是 WAF 的安全防护能力比较弱,只能防护一些简单的攻击,适合对安全防护要求不高的站长。

  • 防护效果:WAF 防护功能比较弱,只有一些简单的正则规则
  • 技术先进性:以正则表达式为主,无其他防护引擎,对抗高强度攻击的能力不足
  • 项目质量:功能丰富,项目开源,文档丰富
  • 社区认可度:1000 Star
  • 社区活跃度:持续有更新,近一年更新过 4 个版本

HTTPWAF

主页:https://github.com/httpwaf/httpwaf2.0 HTTPWAF 官方号称是一款真正有 web 管理后台,并且永久免费的 web 应用防火墙,既支持直接部署在 WEB 服务器上,又可以独立部署保护后端服务器。在免费 WAF 界算是功能很丰富的项目,基础检测能力还可以,缺乏对抗高强度攻击的能力。作为免费产品,源码、文档、安装包均没有公开提供,要加微信获取。

  • 防护效果:基础防护能力还可以,缺少对非通用漏洞的检测规则
  • 技术先进性:资料很少,做不出判断
  • 项目质量:功能丰富,交互还不错,但是代码和文档都没有开放
  • 社区认可度:65 Star
  • 社区活跃度:没有太多社区化的内容

锦衣盾

主页:https://www.jxwaf.com/ 锦衣盾( JXWAF )是一款基于 OpenResty 开发的下一代 Web 应用防火墙,独创的业务逻辑防护引擎和机器学习引擎可以有效对业务安全风险进行防护,解决传统 WAF 无法对业务安全进行防护的痛点。

  • 防护效果:基础防护能力较弱,对非通用漏洞的检测效果不太好,误报有点严重
  • 技术先进性:规则简单,对抗高强度攻击的能力不足
  • 项目质量:功能比较少,交互不太好用,项目开源,代码质量不高,文档基本完善
  • 社区认可度:965 Star
  • 社区活跃度:持续有更新,近一年更新过 1 个版本
0%