好吧,过去几天我一直在为此苦苦挣扎。我试图在 Lubuntu 13.04 上设置个人 ssh 服务器,但遇到了一些问题。
到目前为止我已经完成了这个:
- 我可以通过我的内部 IP 地址进行本地连接,
- 我可以通过外部互联网源
(手机热点 + 不同的计算机)通过我的外部 IP 地址 ping 自己 - 我有一个免费的 dynDNS 正在运行,这样我就不必输入我的外部 IP 地址。
它可以工作(如果我本地连接到该 IP,它会转发到我的路由器) - 我在路由器上设置了端口转发,并暂时禁用了我的个人和路由器的防火墙。
我遇到的问题是我无法从我的网络之外的其他计算机通过 ssh 进行连接:我通常得到的响应是“错误.. [等] 没有到主机的路由”。
我尝试使用“canyouseeme.org”服务,结果是一样的。
我使用一个名为 iiNet 的互联网服务提供商,显然他们有一些每个帐户的端口阻止功能,我也从他们的网站上禁用了这些功能。
我的资源不够了。DMZ 也不起作用,默认端口 (22) 也不起作用,自定义端口也不起作用(9222、9512 或 12222)。
所以我猜测这要么是路由器故障,要么是 ISP 的客户级防火墙故障。
您还有其他什么建议?
这是我的“sudo netstat -plnt”的帖子,显示我的 sshd 正在监听我的自定义端口。
Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称 tcp 0 0 0.0.0.0:12222 0.0.0.0:* LISTEN 2151/sshd
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1474/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 886/cupsd
tcp6 0 0 :::12222 :::* LISTEN 2151/sshd
tcp6 0 0 ::1:631 :::* LISTEN 886/cupsd
我使用 Edimax 7811-nu 适配器进行连接(默认驱动程序不起作用,必须安装一个固定驱动程序)
LE:如果有帮助的话,我正在使用 BoBlite 路由器,固件版本是 BoBLite1500。
答案1
- 您可以本地连接,这表明 SSH 服务器正在运行且正常工作,所以这很好。
- 你可以 ping 自己这一事实实际上并没有告诉我们什么。
- 如果您 ping DynDNS,它会 ping 您的外部 IP 吗?您是否尝试过同时连接到外部 IP 和 DynDNS?
- 如果设置了端口转发,但您仍然无法在该特定端口上获得任何 SSH 访问权限,则说明您的配置或路由器有问题。
从您的 netstat 来看,您的 SSH 端口似乎是12222
,并且连接到localhost:12222
该机器是可行的,所以剩下的就是从您的外部节点(移动热点)到您的 IP 的连接失败。假设您的 dyndns 是foo.bar
,如果您从移动热点运行nmap
portscan会发生什么foo.bar
?在我看来,您的 SSH 端口应该显示在那里。
你得到的结果No route to Host
也让我对路由器的配置产生了怀疑。你能提供一些截图或复制粘贴吗?确切地你的路由器配置是怎样的?哪个端口对应哪个内部 IP,验证内部 IP 是否匹配等。