我能够使用 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 addr
Ubuntu 上,我看到网络名为wlp4s
,但这不是我正在使用的。 - 我正在使用 Windows %14。我在 Windows 上使用时得到的 % <iternfaceLANNumber>:
netsh interface ipv6 show address
并且它说 wifi 是 14:
接口 1:环回伪接口 1
...
接口 14:Wi-Fi
我相信我正在使用 Windows 默认 ssh(或者可能是使用 anaconda 安装的一些)...至少我不记得安装过它...
有可能我以某种方式搞砸了,并停用了通过本地链接的访问...我正在使用nmcli
、netplan
等更改一些(隐私)配置,看看是否可以获得永久的公共 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