Linux服务器用iptables或firewalld命令,Windows服务器用“高级安全Windows Defender防火墙”,云服务器还需在控制台安全组里配IP规则。把这三个入口弄清楚,IP封禁和放行就都明白了。
服务器防火墙设置在哪里:先分清系统和场景
很多人问“服务器防火墙设置在哪里”,其实答案分两层,第一层是操作系统自带的防火墙软件,第二层是云平台的安全组策略,两者独立存在,但都在拦截网络流量。
行业共识认为,一台服务器至少要有两道防火墙:系统层负责本机出入站规则,平台层负责整体网络边界,如果你只配了其中一个,IP管理就存在漏洞。
操作系统防火墙的核心区别如下:
| 系统类型 | 防火墙名称 | 配置方式 |
|---|---|---|
| Linux(CentOS/RHEL) | firewalld | firewall-cmd命令 |
| Linux(旧版) | iptables | iptables命令 |
| Linux(Ubuntu/Debian) | UFW | ufw命令 |
| Windows Server | Windows Defender防火墙 | 图形界面或netsh命令 |
| 云服务器 | 安全组 | 云控制台网页操作 |
搞清楚自己用的是哪一类,接下来就知道去哪里找设置了。
Linux服务器防火墙怎么设置ip:常用命令实操
firewalld:主流CentOS系统的默认选择
CentOS 7及以上版本预装firewalld,这是目前最常见的Linux管理入口,查看状态用:
systemctl status firewalld
如果没有运行,先启动并设为开机自启:
systemctl start firewalld systemctl enable firewalld
封禁单个恶意IP用以下命令:
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=1.2.3.4 reject"
firewall-cmd --reload
只放行指定IP访问某个端口,比如仅允许办公网段连SSH:
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.0/24 service name=ssh accept"
firewall-cmd --reload
这两条命令组合后,SSH端口就只对指定IP段开放,其他人连接直接被拒。
iptables:老牌工具的IP管控思路
老版本系统或没有firewalld的环境,直接用iptables操作,封禁IP:
iptables -A INPUT -s 1.2.3.4 -j DROP
放行指定IP访问80端口:
iptables -A INPUT -p tcp --dport 80 -s 5.6.7.8 -j ACCEPT
注意iptables规则有顺序问题,ACCEPT规则要放在DROP规则前面,否则先匹配到拒绝规则就无效了,保存规则用:
service iptables save
UFW:Ubuntu用户的简洁方案
Ubuntu服务器封禁IP:
ufw deny from 1.2.3.4
放行指定IP:
ufw allow from 5.6.7.8 to any port 22
操作后记得确认状态:
ufw status numbered
Windows服务器防火墙设置在哪:图形化操作路径
Windows Server的防火墙入口在控制面板 → 系统和安全 → Windows Defender防火墙,但IP规则的高级配置不在这里,点左侧“高级设置”进入。
封禁指定IP的所有入站连接
在“高级设置”窗口左侧选“入站规则”,右侧点“新建规则”:
- 规则类型选“自定义”
- 程序选“所有程序”
- 协议和端口默认“任何”
- 作用域中“远程IP地址”勾选“此IP地址或子网”,添加要封禁的IP
- 操作选“阻止连接”
- 配置文件全选,命名后完成
只允许特定IP访问远程桌面
同理新建入站规则,但作用域里只添加允许的IP,操作为“允许连接”,创建两条规则后,阻止规则默认优先生效,所以要删掉默认的远程桌面放行规则,再按你的需求新建。
Windows的防火墙规则优先级较高,配置时一定要确认是否影响现有业务端口。
云服务器安全组:容易被忽略的IP控制层
云服务器(简米云、酷番云、华为云)的防火墙设置和物理机不同,系统防火墙之外,控制台还有一个安全组入口,这个入口在控制台找:云服务器ECS → 实例列表 → 更多 → 网络和安全组 → 安全组配置。
安全组支持添加IP白名单和黑名单规则:
- 入方向规则:控制外部能访问你服务器的来源IP和端口
- 出方向规则:控制服务器对外请求的目标IP和端口
如果遇到IP无法访问但系统防火墙已放行的情况,多半是安全组没放行对应IP,安全组拦截发生在系统防火墙之前,规则冲突时以安全组为准。
安全组和系统防火墙同时用的最佳路径
在安全组层面只放行业务必需端口,来源IP填你自己的公网出口IP,系统防火墙层面再针对临时IP做动态封禁,两个层面规则尽量保持一致,避免排查问题时两头找原因。
配置完防火墙后如何验证IP规则生效
设置完防火墙规则,验证工作不能省,本地用另一台机器测试:

ping 服务器IP
telnet 服务器IP 端口
网页服务就直接用浏览器访问,能打开说明放行成功,打不开说明被拦截,服务器本机查看当前规则:
firewall-cmd --list-all
iptables -L -n
Windows下用:
netsh advfirewall firewall show rule name=all
云服务器则在控制台安全组规则列表里核对,规则不生效时,先确认是否执行了reload,再确认规则是否加了–permanent参数。
服务器防火墙封禁IP相关高频问题解答
防火墙封禁IP后,服务器自己还能正常出网吗?
能,封禁规则只作用于入站方向,服务器主动访问外网不受影响,但如果误封了自己的公网IP,会出现SSH连不上、网站打不开的现象,排查时先检查规则列表里是否有自己的IP,有就移除。
防火墙封禁IP和宝塔面板的IP拦截有什么区别?
宝塔面板的IP拦截规则写在nginx或Apache配置层,应用层拦截,只能作用于HTTP/HTTPS流量,防火墙是内核层拦截,所有协议和端口都生效,对DDoS攻击源IP,必须在防火墙层封禁才彻底。
服务器防火墙设置在哪个位置优先级最高?
云服务器安全组优先级最高,其次是系统防火墙,再往下是应用层如宝塔、nginx的IP限制,安全组优先生效,所以同一个IP要么在安全组封禁,要么在系统防火墙封禁,两者同时配置也不会产生冲突,只是管理上容易混乱。
核心结论再强调一次:Linux服务器防火墙设置入口是firewalld或iptables,Windows是高级安全防火墙,云服务器加一个控制台安全组,任何IP封禁需求先判断流量卡在哪一层,再选择对应的配置入口,验证规则用列表命令和实际访问测试双确认。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/627584.html





