无法从网络外部通过 ssh 进入路由器后面的 Linux 机器

无法从网络外部通过 ssh 进入路由器后面的 Linux 机器

我们即将在现场部署一些网关设备(Raspberrypi)。虽然我们试图使它们非常强大,以至于我们不需要远程访问它们,但由于这是 POC 之一,我们正在采取措施对它们进行远程调试。

设置如下,我们有一个 RPI,它充当其他无线设备的数据聚合器。我们只想访问日志并在需要时远程运行一些命令。现在我在 RPI 上运行 ssh 服务器并监听默认的 22 端口(我们可以更改端口)。现在这个 RPI 连接到 Reliance JIO wifi 设备,其端口转发部分如下所示

Reliance JIO hifi 页面用于端口转发

我使用本地端口和 WAN 端口作为 22,使用 MAC 地址作为我的笔记本电脑 Wifi MAC 地址。现在我使用以下命令获取我的公共 IP curl ipinfo.io/ip。现在我使用我的一个数字海洋服务器并尝试使用 ssh ssh <username>@<IP> -p<PORT number which is 22>,但我仍然无法访问我的机器,我无法找出背后的原因。有人可以指导我或至少指出我正在犯的错误吗?

注意:- 目前,我正在使用ngrock只允许一个ngrok进程的命令,./ngrok tcp 22您可以从 ngrok 获取自定义 IP,并可以使用相同的 IP 访问系统,而无需在路由器上执行任何操作。这在您在一台机器上进行测试之前是很好的。我的主要目标是编写一个小型 Python 脚本,该脚本不断将 RPI 的当前 IP 发布到 Web 服务器,并在发生更改时更新 IP。然后我可以使用相同的 IP 来 ssh 我的机器。

编辑-1-我使用了在线端口扫描器canyouseeme.org发现尽管我转发了端口 22(如果这意味着打开端口 22),但 Reliance Wifi 设备中的端口 22 并未打开。我也尝试使用 Dlink Router DIR-816 进行同样的操作。以下是附图在此处输入图片描述当我使用在线端口扫描器时,它显示Error: I could not see your service on XX.XX.XX.XX on port (22) Reason: No route to host。我使用的是 ACT fibernet - 班加罗尔的宽带服务之一。当我traceroute从我的一个数字海洋服务器运行时,我能够看到我的 IP。

埃迪德-2根据建议,我使用了不同的 WAN 端口,并尝试了在线端口扫描器,但出现了同样的错误connection timed out。此外,输出netstat -anutp | grep :22$ netstat -anutp | grep :22 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 252 192.168.0.100:37043 XX.XX.XX.XX:22 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN -

是否有可能我的 ISP 正在阻止此端口或任何传入端口请求。但同时当我使用时ngrok,一切都正常。ngrok 的问题是,它是一项付费服务​​,免费计划仅允许一个实例,我不想最终为 ssh 支付 100 美元。

相关内容