You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何公网IP无法访问Raspberry Pi3的SSH,但黑客机器人却能连接?

你的Raspberry Pi SSH问题拆解与解决

嘿,我来帮你理清楚这俩事儿——为啥日志里一堆来自中国地址的失败登录,还有为啥你自己用公网IP连不上你的Pi。

一、先搞懂那些恶意登录尝试

那些日志里的记录是自动化的暴力破解脚本在搞事:它们会遍历全网的公网IP,扫描常见服务端口(比如SSH默认的22),一旦发现端口开放,就用预设的通用用户名(root、operator、webmaster这些)轮番试密码。你看到的“中国地址”只是这些脚本所在服务器的IP归属地,不是针对你个人,纯粹是你的Pi刚好被扫到了而已,这种情况在暴露公网的设备上太常见了。

二、解决你自己连不上的核心问题

既然日志里已经有外部请求打到你的Pi上,说明路由器的端口转发大概率是开了的,但你连不上可能有这些原因,按顺序排查:

1. 先排除内网访问公网IP的限制

很多家庭路由器不支持NAT回环(简单说就是内网设备用公网IP访问自己的端口转发服务),这是很常见的坑。你可以先测试:

  • 用手机开流量(别连家里WiFi),用PuTTY连你的公网IP,看能不能连上。
  • 如果手机能连,那就是路由器的NAT回环问题,你在内网的时候直接用Pi的局域网IP(可以在Pi上跑hostname -I查看)连就行。

2. 确认路由器端口转发规则是否正确

登录你的路由器管理后台,找到“端口转发”/“虚拟服务器”选项,检查这几点:

  • 外部端口是不是22(如果你改了SSH端口,要对应)
  • 内部IP是不是你的Pi的局域网IP(确保没输错)
  • 内部端口是不是22(SSH默认端口)
  • 协议是不是TCP(SSH只走TCP)

3. 检查Pi上的防火墙设置

Raspbian Stretch默认没开防火墙,但如果你手动装了ufw之类的工具,得确认允许SSH访问:

  • 先通过HDMI显示器或者内网SSH登录Pi,运行sudo ufw status查看规则。
  • 如果没看到允许22端口的规则,就跑sudo ufw allow ssh来放行,再重启防火墙sudo ufw reload。

4. 确认Pi的SSH服务是否正常运行

在Pi上运行sudo systemctl status ssh,看服务是不是显示active (running)状态:

  • 如果没运行,用sudo systemctl start ssh启动,再用sudo systemctl enable ssh设置开机自启。

5. 核对PuTTY的设置

  • 确认PuTTY里的“主机名”是你的公网IP,“端口”和你路由器转发的端口一致(默认22)。
  • 如果之前改了SSH端口,要确保PuTTY、路由器转发规则、Pi的SSH配置这三者的端口完全匹配。

三、安全加固建议(既然已经被扫描到了)

既然你的SSH端口已经暴露在公网,赶紧做这些加固,避免被破解:

  • 修改SSH默认端口:编辑/etc/ssh/sshd_config,找到Port 22改成一个高端口(比如2222),然后重启SSH服务sudo systemctl restart ssh,同时更新路由器的端口转发规则到新端口。
  • 禁用root用户登录:在sshd_config里找到PermitRootLogin yes改成PermitRootLogin no,这样就算脚本猜中用户名也没法用root登录。
  • 启用密钥登录,禁用密码登录:这是最安全的方式——生成SSH密钥对,把公钥放到Pi的~/.ssh/authorized_keys文件里,然后在sshd_config里设置PasswordAuthentication no,重启SSH。
  • 安装fail2ban:这是个防暴力破解的工具,会自动封禁多次失败登录的IP。安装命令:sudo apt install fail2ban,默认配置就够用,它会自动监控auth.log并封禁恶意IP。

内容的提问来源于stack exchange,提问作者alxc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:53:48