为什么我的 Ubuntu IPv6 ssh 服务器不工作?

为什么我的 Ubuntu IPv6 ssh 服务器不工作?

我无法通过 IPv6 使用 OpenSSH 设置我的 Ubuntu 服务器 (16.04 LTS)。该服务器在 VirtualBox 机器内运行,其网络接口设置为“网络桥”(如果这是正确的德语翻译)。

我可以使用家庭网络内的 IPv4 通过 ssh 进入该盒子,即以下操作没有任何问题:

ssh [email protected]

但是,我的 ISP(Vodafone/Kabel Deutschland)显然正在将其客户迁移到 IPv6,因此在他们发送的路由器/调制解调器单元(CH7466CE 无线语音网关固件版本 4.50.18.16)上禁用了 IPv4 及其所有功能,包括端口转发。

因此,我尝试使用 IPv6 来启动 ssh,但失败了!任何从我自己的网络外部连接到该盒子的尝试都失败了,如下所示:

ssh -6 [email protected]

导致以下错误消息:

ssh: connect to host xxxx.dynv6.net port 22: No route to host

尽管我能够 ping 该盒子,但情况仍然如此:

--- xxxx.dynv6.net ping6 statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.506/0.620/0.684/0.081 ms

现在,据我所知,这很可能是路由/网络错误,因为 IPv6 地址是到盒子的直接路径,因此完全超越了路由器。到目前为止,我说得对吗?

凭借我(可能低于)平均水平的技能,我尝试通过在 ip6tables 中打开端口 22 来解决这个问题——但同样:没有成功!

如果有帮助的话,这里还有一些信息:

$ sudo lsof -i |grep ssh
sshd     2385     root    3u  IPv6  19777      0t0  TCP *:ssh (LISTEN)
sshd     2385     root    4u  IPv4  19785      0t0  TCP *:ssh (LISTEN)
sshd     2796     root    3u  IPv4  20851      0t0  TCP 192.168.0.14:ssh->192.168.0.8:62519 (ESTABLISHED)
sshd     2874    user1    3u  IPv4  20851      0t0  TCP 192.168.0.14:ssh->192.168.0.8:62519 (ESTABLISHED)

$ sudo netstat -l --numeric-ports | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
unix  2      [ ACC ]     STREAM     LISTENING     20622    private/verify

$ sudo ip6tables -L -v -n
Chain INPUT (policy ACCEPT 116 packets, 39020 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp      enp0s3 *       ::/0                 ::/0                 tcp dpt:22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp      enp0s3 *       ::/0                 ::/0                 tcp dpt:22

Chain OUTPUT (policy ACCEPT 108 packets, 37676 bytes)
 pkts bytes target     prot opt in     out     source               destination        

我希望这些信息足够有用。我今天花了很多时间试图解决这个问题,但显然靠我自己是无法解决的。希望你们能帮忙!

如果您需要任何其他/更多信息,请告诉我。

JW

答案1

问题(有点)解决了!

感谢@grawity,我调查了 traceroute6 的输出并发现我使用的 IPv6 不起作用。

使用时

ip a show enp0s3

我有两个 IPv6 地址,从我在互联网上看到的信息来看,第一个地址是从我系统的 mac 地址派生出来的,第二个地址则比较匿名。但不知为何后者似乎对我不起作用。我不知道为什么——而且因为我不需要在网上分享它,所以我真的不太在意。

目前我的 DynDns IPv6 SSH 设置运行良好。谢谢 @grawity!

相关内容