无法通过互联网通过 SSH 访问我的设备

无法通过互联网通过 SSH 访问我的设备

我在我的 Android 设备上的端口 22 上运行 sshdroid 服务器,当我使用我的电脑通过 ssh (LAN) 连接到它时,我得到了这个

root@kali:~# ssh -l root 100.107.219.116
The authenticity of host '100.107.219.116 (100.107.219.116)' can't be established. 
RSA key fingerprint is xxxxxxxxxxxxxxxxxxxx­xxxxxxxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '100.107.219.116' (RSA) to the list of known hosts.
SSHDroid
Use 'root' as username
Default password is 'admin'
[email protected]­'s password: 
root@android:/data/­data/­berserker.android.app­s.sshdroid/home #

现在当我尝试通过 ssh (互联网)访问它时

root@kali:~# ssh -l root x.xx.xx.xxx
ssh: connect to host x.xx.xx.xxx port 22: No route to host 
root@kali:~#

所以我尝试通过 nmap 扫描外部端口并将其作为输出。

root@kali:~# nmap x.xx.xx.xxx
Starting Nmap 6.47 (http://nmap.org/) at 2015-09-29 16:30 IST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn 
Nmap done: 1 IP address (0 hosts up) scanned in 3.13 seconds 
root@kali:~# nmap -Pn x.xx.xx.xxx

Starting Nmap 6.47 (http://nmap.org/) at 2015-09-29 16:30 IST

Nmap scan report for x.xx.xx.xxx
Host is up (0.11s latency).
All 1000 scanned ports on 1-39-60-154.live.vod­afone.in (x.xx.xx.xxx) are filtered
Nmap done: 1 IP address (1 host up) scanned in 5.77 seconds 

root@kali:~#

我使用的是 DIR-600M 路由器。如何通过互联网通过 ssh 连接到我的设备?

答案1

您的路由器后面可能有多个主机(例如您的 android)。

路由器无法知道将传入的 ssh 数据包 (*) 发送到何处,或者您是否接受它们。

您必须告诉您的路由器如何处理您接受的传入数据包(发送到哪个 IP)。

这通常被称为转发端口在路由器设置网页上。

例如

ssh (port 22) -> 192.168.1.22
web (port 80&443) -> 192.168.1.80
Foo (port 12345, 666, 1756) -> 192.168.1.100
etc

(*) 一个常见的反对意见是:

但我的路由器不能扫描本地 IP 来查找开放的 22 端口并更新端口转发吗?

,如上所述,路由器无法猜测您是否愿意接受传入连接(仅考虑扫描您的开放端口所花费的时间)。

答案2

正如@Archemar 所说,您必须将端口 22 转发到您的一台计算机。即使路由器后面只有一台机器,路由器也无法假设您想要转发端口。默认设置是阻止所有内容,从安全角度来看这是明智的。

AFAIK,这意味着

  • 为您想要将端口转发到的每台计算机分配一个静态本地 IP。如果您使用 DHCP,您将在路由器配置界面中通过将 IP 分配给计算机的 MAC 地址(即其网络接口 MAC 地址)来执行此操作。

  • 将端口 22 转发到您选择的静态 IP。

您没有询问,但如果您想通过 ssh 连接到本地网络上的多台计算机,则可以使用非标准端口(每台计算机一个)来实现。

相关内容