如何使用本地链接 ipv6 进行 ssh?

如何使用本地链接 ipv6 进行 ssh?

我能够使用 ssh 从本地网络上的 Windows 笔记本电脑远程访问我的 Ubuntu 22.04 PC

ssh <username>@<public ipv6 address> -p <port>

或者ping说没有问题。

但是公共 ipv6 是临时的,而本地链路 ipv6 是永久的(valid_lft forever),因此使用它会很方便。但它不适用于

ssh -6 <username>@<local-link ipv6 address>%<iternfaceLANNumber> -p <port>

我刚刚得到

连接超时

一些问题显示应该可以工作。我尝试了带括号和不带括号的情况,结果是一样的。

我也无法 ping

ping <local-link ipv6 address>%<iternfaceLANNumber>

它返回

无法访问的主机

据我所知(例如这里),我们在内网应该可以使用local-link ipv6...如何开启ssh使用local-link ipv6的访问呢?

任何帮助都将受到赞赏。


一些细节:


我正在 Windows PC 上从 anaconda prompt 访问 (ssh)。

关于 <iternfaceLANNumber>,

  • ip addrUbuntu 上,我看到网络名为wlp4s,但这不是我正在使用的。
  • 我正在使用 Windows %14。我在 Windows 上使用时得到的 % <iternfaceLANNumber>:

    netsh interface ipv6 show address

并且它说 wifi 是 14:

接口 1:环回伪接口 1

...

接口 14:Wi-Fi


我相信我正在使用 Windows 默认 ssh(或者可能是使用 anaconda 安装的一些)...至少我不记得安装过它...


有可能我以某种方式搞砸了,并停用了通过本地链接的访问...我正在使用nmclinetplan等更改一些(隐私)配置,看看是否可以获得永久的公共 ipv6 地址。

因此,在 Ubuntu 中,我有:

  • 编辑了<networkName>.nmconnection位于 的文件/etc/NetworkManager/system-connections/
    • [ipv6]
    • addr-gen-mode=eui64
  • nmcli connection edit <network>
    • set ipv6.addr-gen-mode 0
    • set ipv6.ip6-privacy 1
  • [已编辑 /etc/sysctl.d/10-ipv6-privacy.conf]
    • net.ipv6.conf.all.use_tempaddr = 0
    • net.ipv6.conf.default.use_tempaddr = 0
    • net.ipv6.conf.<wlanCode>.accept_ra = 0
    • net.ipv6.conf.<wlanCode>.autoconf=1
    • net.ipv6.conf.<wlanCode>.use_tempaddr=0
  • 编辑.yaml文件/etc/netplan
    • network: * version: 2 * ethernets: * <WLancode>: * dhcp6: false * ipv6-privacy: off * ipv6-address-generation: eui64 * accept-ra: false * renderer: NetworkManager

相关内容