将 wsl 1 (centos子系统) 更新为 wsl 2 后 ssh 无法远程连接

本文介绍了将Windows Subsystem for Linux (WSL) 1更新到WSL2后,由于网络结构变化可能导致的SSH远程连接问题。重点讲述了IP地址改变的原因,并提供了通过ifconfig获取新IP并调整ssh连接的方法。

参考

官网对比wsl1和wsl2:
https://docs.microsoft.com/en-us/windows/wsl/compare-versions

说明

  • 将 wsl 1 更新为 wsl 2 用ssh连接的时候,发现原本可用的 ssh 远程连接现在全部不可用?
  • 使用的是centOS子系统

依据

  • 官网对比 wsl 1 和 wsl 2 中有说到:

    If you rely on a Linux distribution to have an IP address in the same network as your host machine, you may need to set up a workaround in order to run WSL 2. WSL 2 is running as a hyper-v virtual machine. This is a change from the bridged network adapter used in WSL 1, meaning that WSL 2 uses a Network Address Translation (NAT) service for it’s virtual network, instead of making it bridged to the host Network Interface Card (NIC) resulting in a unique IP address that will change on restart. To learn more about the issue and workaround that forwards TCP ports of WSL 2 services to the host OS, see WSL GitHub repository issue 4150, NIC Bridge mode (TCP Workaround).

    翻译过来大致内容是

    如果您依赖于 Linux 发行版在与主机相同的网络中拥有 IP 地址,则可能需要设置解决方法才能运行 WSL 2。WSL 2 作为 hyper-v 虚拟机运行。这是对 WSL 1 中使用的桥接网络适配器的更改,这意味着 WSL 2 对其虚拟网络使用网络地址转换 (NAT) 服务,而不是将其桥接到主机网络接口卡 (NIC),从而导致在重新启动时将更改的唯一 IP 地址。若要了解有关将 WSL 2 服务的 TCP 端口转发到主机操作系统的问题和变通办法的详细信息,请参阅 WSL GitHub 存储库问题 4150,NIC 桥接模式(TCP 变通办法)。

    大概就是 ip 地址可能变了!

  • 在centOS中输入以下命令:
    ifconfig
    发现IP的确发生变化,那么ssh在连接的时候改一下ip就好了

解决

  • 在centos中输入以下命令查看ip,并复制
    ifconfig | grep inet
  • 在Xshell中输入如下命令进行远程连接
    ssh -p 22 <用户名>@<ip>
    用户名替换为你自己的用户名,ip为上面复制的ip
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值