我们即将在现场部署一些网关设备(Raspberrypi)。虽然我们试图使它们非常强大,以至于我们不需要远程访问它们,但由于这是 POC 之一,我们正在采取措施对它们进行远程调试。
设置如下,我们有一个 RPI,它充当其他无线设备的数据聚合器。我们只想访问日志并在需要时远程运行一些命令。现在我在 RPI 上运行 ssh 服务器并监听默认的 22 端口(我们可以更改端口)。现在这个 RPI 连接到 Reliance JIO wifi 设备,其端口转发部分如下所示
我使用本地端口和 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 美元。