我正在试图build立一个IPv6testing平台。 非常基本的:只有两个Ubuntu Linux框通过局域网相互通话。 两个盒子都有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客户端就会挂起。 没有错误或任何东西。 如果我在客户端上运行tcpdump ,我根本看不到IPv6通信。 这是怎么回事?
请注意,如果我从服务器机器到本身的SSH的ip6-localhost地址,它工作正常,所以它似乎不是一个SSH问题。 任何帮助不胜感激。
首先,如果安装了ufw ,请检查/etc/default/ufw以查看是否设置了IPV6=no选项。 您必须将其设置为yes或ufw默认情况下将防火墙所有IPv6通信。
做完这些之后,尝试一些基本的诊断知识,在学习IPv6时应该了解这些知识。
你应该做的第一件事是安装ndisc6包,然后尝试做邻居请求。 (这相当于在IPv4中执行ARP请求)
sudo apt-get install ndisc6
请注意,您需要为此启用universe存储库。
然后,从你的第一台机器:
ndisc6 fec0::2 eth0
这将确保您可以findfec0::2的MAC地址。
(请注意, ndisc6软件包还附带了一个名为rdisc6的方便实用程序,如果您的networking上有IPv6路由器,它可能很有用;它将检查路由器是否正确响应。
validation邻居发现后,下一步尝试ping6 fec0::2 。
如果您仍然遇到问题,您可能要发布其他诊断信息:
/sbin/ip -6 addr /sbin/ip -6 neigh /sbin/ip -6 route sudo /sbin/ip6tables -L
我们需要更多信息才能真正帮助 – 对于初学者,您能否通过IPv6在两台主机之间成功ping通? 如果你不能ping通你还有一个更基本的问题来解决…
假设你可以 ping通(基本的连接工作),请双击netstat(或者通过从本地机器上SSH到fec0 :: N地址)来确保你的SSH守护进程正在监听你正在尝试使用的IPv6地址。 您可能需要编辑您的sshd.conf文件和/或重新启动sshd,以便实现新的v6地址侦听。