Answers:
我想到了几件事。
屏幕截图中的转发看起来不错。您可以尝试将其设置为 TCP
代替 TCP/UDP
,因为ssh是TCP协议。
您确定使用正确的动态更新主机名或正确的公共IP地址吗?要查找您的公共IP地址,请在Raspberry或SSH(内部)上打开一个控制台并使用它 curl icanhazip.com
。
确保,在 /etc/ssh/sshd_config
,如果你有多个,sshd会监听正确的接口。注释掉这条线 ListenAddress a.b.c.d
用一个 #
并重新启动服务( /etc/init.d/sshd restart
要么 systemctl restart sshd
,取决于你的发行版)。
编辑:对不起,你已经说过了。
编辑:
如果你无法从中得到输出 curl icanhazip.com
,你的Raspberry可能不知道如何上网。因此它无法从外部回复您的连接尝试。添加路线,e。 G。同 ip route add default via <your modem's IP address>
然后再试一次。
确保您的Raspberry内部防火墙允许来自外部地址的SSH。 iptables -S
会给你一个规则列表。寻找像这样的线条
-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
# SSH only allowed from the internal network, if iptables policy INPUT is DROP
在这种情况下,允许所有传入的流量 iptables -P INPUT ACCEPT
要么 iptables -I INPUT -p tcp --dport 22 -j ACCEPT
。
在内部,在您的家庭网络中,您使用IPv4地址。在您的示例192.168.0.x中。但是,您的ISP可能会在其网络中使用IPv6。路由器将您的IPv4地址转换为IPv6。这通常会导致无法从远程连接到您的家庭网络。
如果 curl icanhazip.com
给你一个IPv6地址,e。 G。 2001:a61::35:2
,它可能是一个指标。此外,也许您的C6300将显示相关信息。 (我使用AVM Fritz!Box 7360,它明确输出“Fritz!Box使用DS-Lite隧道”)。
要100%确定,请致电您的ISP。
编辑:
如果您在DS-Lite隧道后面,可以考虑以下选项,然后从远程连接回家:
autossh
让您的家用电脑连接到另一台主机,例如G。在工作(之前问你的雇主),你的网络服务器,你的VPS。配置 autossh
以某种方式创建一个反向隧道,例如: G。 ssh -R 10000:localhost:22 user@yourvps.com
。然后你可以ssh到yourvps.com和ssh从那里回家 ssh -p 10000 user@localhost
。 编辑:
在固件版本2.01.14之前或之前固件中似乎存在错误,只有在“高级配置”&gt;中选择“响应互联网广域网端口上的Ping”时才会使打开的端口可见。 “WAN设置”已激活。
iptables -S
输出就是 -P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
所以我跑了 iptables -I INPUT -p tcp --dport 22 -j ACCEPT
正如你所建议的那样 curl
命令确实输出了一个IPv6地址,使用它没有任何区别。我在我的端口转发中将协议设置为TCP,但是 ping.eu/port-chk 仍告诉我港口已关闭。
-P
已经被设定为 ACCEPT
,没有区别。如果 curl
输出一个IPv6地址,然后你可能正在运行一个DS-Lite堆栈。或者更好,你的ISP做到了。请查看他们的网页,客户论坛或致电他们,以确保100%。在这种情况下,可能很难获得从远程到家的连接。您可以租用带有公共IP的VPS并运行 autossh
在你的覆盆子上,你可以在家里从VPS跳到你的覆盆子。