我正在尝试设置 IPv6 测试平台。非常基本:只有两个 Ubuntu Linux 机器通过 LAN 相互通信。两个盒子都有工作的 IPv4 连接,但我在 IPv6 上使用 SSH 没有运气。按照这个HOWTO,我在站点本地范围 (fec0::) 中给出了两台机器的地址。在第一个盒子上,我跑了:
sudo ifconfig eth0 inet6 add fec0::1/64
第二次,我跑了:
sudo ifconfig eth0 inet6 add fec0::2/64
然后我检查了路由表,每个似乎都有一条通过 eth0 接口到该网络的路由。接下来,我添加了一个/etc/hosts
从第二个框指向第一个框的条目。但是当我尝试从第二个盒子到第一个盒子的 SSH 时,SSH 客户端只是挂起。没有错误或任何东西。如果我tcpdump
在客户端上运行,我根本看不到 IPv6 流量。这是怎么回事?
请注意,如果我 SSH 到ip6-localhost
从服务器机器到自身的地址,它工作正常,所以它似乎不是 SSH 问题。非常感谢任何帮助。
首先,如果已
ufw
安装,请检查/etc/default/ufw
是否设置了该IPV6=no
选项。默认情况下,您必须将其设置为yes
或ufw
将防火墙所有 IPv6 流量。完成此操作后,尝试一些在学习 IPv6 时应该了解的基本诊断。
您应该做的第一件事是安装
ndisc6
软件包,然后尝试进行邻居请求。(这相当于在 IPv4 中执行 ARP 请求)请注意,您需要
universe
为此启用存储库。然后,从您的第一台机器:
这将确保您可以找到
fec0::2
.(请注意,该
ndisc6
软件包还附带一个名为的实用实用程序rdisc6
,如果您的网络上有 IPv6 路由器,该实用程序会很有用;它将检查路由器是否正确响应。)在验证邻居发现有效后,下一次尝试
ping6 fec0::2
。如果您仍然遇到问题,您可能想要发布的其他诊断信息:
我们需要更多信息才能真正提供帮助——首先,您能否通过 IPv6 在两台主机之间成功 ping 通?如果你不能 ping 你还有一个更基本的问题需要解决......
假设您可以ping(基本连接工作)仔细检查 netstat(或通过 SSH 从本地框中的 fec0::N 地址)以确保您的 SSH 守护程序正在侦听您尝试使用的 IPv6 地址。您可能需要编辑您的 sshd.conf 文件和/或重新启动 sshd,以便它意识到有新的 v6 地址可以监听。