
我正在嘗試建立 IPv6 測試平台。非常基本:只有兩個 Ubuntu Linux 機器透過 LAN 相互通訊。兩個盒子都有有效的 IPv4 連接,但我沒有成功地使用 IPv6 上的 SSH。按照此如何,我已經給了兩台機器在站臺本地範圍內的位址(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 問題。非常感謝任何幫助。
答案1
首先,如果您已經ufw
安裝,請檢查/etc/default/ufw
該IPV6=no
選項是否已設定。您必須將其設定為yes
預設ufw
防火牆所有 IPv6 流量。
完成此操作後,請嘗試一些在學習 IPv6 時應該了解的基本診斷方法。
您應該做的第一件事是安裝該ndisc6
軟體包,然後嘗試進行鄰居請求。 (這相當於在 IPv4 中進行 ARP 請求)
sudo apt-get install ndisc6
請注意,您需要universe
為此啟用儲存庫。
然後,從您的第一台機器:
ndisc6 fec0::2 eth0
這將確保您可以找到 的 MAC 位址fec0::2
。
(請注意,該ndisc6
軟體包還附帶了一個方便的實用程序,rdisc6
如果您的網路上有 IPv6 路由器,該實用程式會很有用;它將檢查路由器是否正確響應。)
驗證鄰居發現有效後,下一步嘗試ping6 fec0::2
。
如果您仍然遇到問題,您可能需要發布其他診斷資訊:
/sbin/ip -6 addr
/sbin/ip -6 neigh
/sbin/ip -6 route
sudo /sbin/ip6tables -L
答案2
我們需要更多資訊才能真正提供協助 - 首先,您能否透過 IPv6 在兩台主機之間成功執行 ping 操作?如果您無法 ping 通,那麼您還有一個更基本的問題需要解決...
假設你能ping(基本連線正常)在 netstat 中仔細檢查(或透過從本機 SSH 連線到 fec0::N 位址)以確保您的 SSH 守護程式正在偵聽您嘗試使用的 IPv6 位址。您可能需要編輯 sshd.conf 檔案和/或重新啟動 sshd,以便它意識到有新的 v6 位址可供偵聽。