使用ufw阻止特定主机Telnet请求遇阻,寻求解决方法
解决ufw阻止特定主机Telnet但允许同网段访问的问题
嘿,我来帮你排查一下问题——你遇到的情况其实是ufw规则里很容易踩的坑:要么是规则顺序搞反了,要么是旧的全局封禁规则没清理,还有可能是规则的方向/源目标搞混了。
先理清你的核心需求对应的正确逻辑
你要的是:拒绝来自特定IP的入站Telnet请求,同时允许同网段其他所有IP的入站Telnet请求。ufw的规则是从上到下匹配的,所以必须把「拒绝特定IP」的规则放在「允许网段」的前面,否则先匹配到允许规则,拒绝就失效了。
具体操作步骤
清理冲突的旧规则
先看看你之前的错误规则还在不在:ufw status numbered找到那些全局封禁23端口的规则(比如类似
[N] 23/tcp DENY IN Anywhere),用编号删掉它们:ufw delete [规则编号]添加正确的规则(顺序很重要!)
假设你要阻止的特定主机IP是192.168.1.100,同网段是192.168.1.0/24,执行以下两条命令(顺序不能乱):- 先拒绝特定IP的入站Telnet:
ufw deny in from 192.168.1.100 to any port 23 - 再允许同网段所有IP的入站Telnet:
ufw allow in from 192.168.1.0/24 to any port 23
- 先拒绝特定IP的入站Telnet:
验证规则和生效状态
查看最终的规则列表,确认顺序和内容正确:ufw status verbose你应该能看到两条规则,第一条是拒绝特定IP的23端口入站,第二条是允许网段的23端口入站。同时确保ufw是启用状态(输出开头会显示
Status: active),如果没启用,执行ufw enable激活。
你之前可能踩的坑
- 规则顺序搞反:如果先加了允许网段的规则,再加拒绝特定IP的,那么特定IP会先匹配到允许规则,拒绝就不起作用了。
- 全局封禁了23端口:比如你之前用了
ufw deny 23/tcp,这会拒绝所有IP的23端口请求,必须先删掉这条。 - 规则方向错误:比如写成了
deny out(出站),但你要阻止的是别人发过来的入站请求,必须用deny in。 - 源/目标搞混:比如写成
deny in from any to 192.168.1.100 port 23,这是拒绝发给目标IP的请求,完全搞反了,应该是from 特定IP。
内容的提问来源于stack exchange,提问作者Everyone
相关产品推荐
相关产品推荐

