执行nmap扫描后本地SSH无法连设备 外部连接正常的解决求助
SSH连接重置问题的诊断与解决
核心判断
大概率是nmap扫描触发了目标设备的SSH防护机制(如fail2ban、sshd连接限制或防火墙规则)。日志里的10.0.0.96是你的WiFi路由器在10.0网段的网关IP——你的设备在192.168网段,访问10.0设备时流量经路由器NAT转发,目标看到的源IP是路由器的10.0接口IP,随机端口是NAT转换的正常现象。
具体解决步骤
1. 检查并解除fail2ban封禁
- 查看fail2ban运行状态:
sudo systemctl status fail2ban - 若服务运行,检查sshd jail的封禁列表:
sudo fail2ban-client status sshd - 若发现
10.0.0.96在封禁列表,执行解封操作:sudo fail2ban-client set sshd unbanip 10.0.0.96
2. 调整sshd连接限制
- 编辑sshd配置文件:
sudo nano /etc/ssh/sshd_config - 找到
MaxStartups参数(控制并发连接尝试上限),调整为更宽松的设置(示例):
(允许10个并发连接,超过后30%概率拒绝,最多限制100个连接尝试)MaxStartups 10:30:100 - 重启sshd使配置生效:
sudo systemctl restart sshd
3. 检查防火墙规则
- 查看iptables规则,确认是否存在针对22端口的过度限速/封禁:
若存在类似sudo iptables -L -n -v-A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 10 -j DROP的规则,可临时删除或调整阈值。 - 若使用ufw防火墙,查看详细规则状态:
确保SSH端口的限制是合理限速而非直接封禁,可重新设置规则:sudo ufw status verbosesudo ufw limit ssh/tcp
4. 长期优化方案
- 在fail2ban中添加内网网段白名单:编辑
/etc/fail2ban/jail.d/sshd.conf,增加:
避免误封禁内网转发IP。ignoreip = 127.0.0.1/8 10.0.0.0/24 192.168.0.0/16 - 改用SSH密钥登录替代密码登录:在
sshd_config中设置:
重启sshd后,将本地公钥上传至目标设备的PasswordAuthentication no PubkeyAuthentication yes~/.ssh/authorized_keys,提升安全性的同时减少触发防护的概率。 - 后续nmap扫描目标设备时,使用低强度扫描参数:
nmap -T2 -p 22 <目标IP>
内容的提问来源于stack exchange,提问作者OIRNOIR
相关产品推荐
相关产品推荐

