商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Nginx怎样设置防火墙规则

Nginx怎样设置防火墙规则

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

在Nginx的部署与运维中,防火墙规则往往是很多人容易忽略却又极其重要的一环。无论你是刚入门还是已经踩过不少坑,一个清晰的规则体系能帮你省掉很多“排查半天发现是端口没开”的麻烦。下面梳理的这几个环节,基本覆盖了从Nginx自身配置到系统级防火墙的设置思路。

1. 配置Nginx

首先得确认Nginx的服务器块(server block)配置正确。通常配置文件放在/etc/nginx/nginx.conf/etc/nginx/sites-a vailable/目录下。举个最简单的例子:

server {listen 80;server_name example.com;location / {root /var/www/html;index index.html index.htm;}}

这个片段指定了监听80端口,域名绑定,以及根目录。别看它基础,很多问题就是从这里漏掉的——比如忘记listen正确端口,或者server_name写错。

2. 使用iptables设置防火墙规则

如果你的系统用的是iptables(不少Linux发行版默认就是它),那么规则添加方式比较直接。先看几个常用场景:

允许HTTP和HTTPS流量

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

拒绝所有其他流量

sudo iptables -A INPUT -j DROP

注意顺序:先放行需要的端口,最后再补一条默认丢弃,否则先扔了就把自己关门外了。

允许特定IP地址访问

sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.1 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -s 192.168.1.1 -j ACCEPT

这样只有来自192.168.1.1的请求才能访问Nginx,其他IP一概拒绝。

3. 使用ufw设置防火墙规则

如果你觉得iptables的规则写起来有点费劲,ufw(Uncomplicated Firewall)是更友好的选择。操作非常规整:

启用ufw

sudo ufw enable

允许HTTP和HTTPS流量

sudo ufw allow 80/tcpsudo ufw allow 443/tcp

拒绝所有其他流量

sudo ufw default deny incoming

允许特定IP地址访问

sudo ufw allow from 192.168.1.1 to any port 80sudo ufw allow from 192.168.1.1 to any port 443

ufw底层其实还是调用了iptables,但命令更直观,适合日常管理。

4. 保存防火墙规则

规则配好了,最怕重启后失效。保存这一步千万别省。

对于iptables

sudo iptables-sa ve > /etc/iptables/rules.v4

这个命令会把当前规则写入文件,系统重启时通过iptables-restore自动加载(前提是启用了对应的服务)。

对于ufw

ufw的规则通常会自动持久化,但如果你想确认或手动调整,可以查看状态:

sudo ufw status numbered

然后需要修改时可以直接编辑/etc/ufw/before.rules文件添加自定义规则。

5. 测试防火墙规则

最后,验证一下是否真的生效。最常用的两个命令:

sudo iptables -L -vsudo ufw status

iptables -L -v能显示每条规则的包计数,一眼就能看出哪些规则正在被命中。而ufw status则列出所有允许/拒绝的规则列表,清晰明了。

以上这些步骤基本覆盖了Nginx搭配防火墙的常见场景。实际生产环境中,你可能还需要考虑速率限制、连接数限制、IP黑名单等更细粒度的控制——但先把基础的流量管控做好,后面的事情就顺多了。

本文转载于:https://www.yisu.com/ask/85006855.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注