如何使用一台设备远程登录另一台设备的WSL?


主播在学习的时候遇到了一个困扰:带有显卡的台式机放在寝室,而在实验室用轻薄本的时候想训练模型,要么远程控制(费流量、卡顿、占用高),要么只能回寝(浪费时间)。所以,有没有一个可以让我在实验室就能连接到寝室的wsl的方法呢?有的兄弟有的!

一、安装WSL2——Windows Subsystem for Linux 2

参考学长的博客:告别虚拟机!WSL2安装配置教程!!!

同时还有另一个重要的功能,可以学习一下:在wsl2上挂载usb设备

二、在wsl2上配置ssh

2.1 安装ssh

在Ubuntu上的终端运行以下命令:

sudo apt update
sudo apt install openssh-server
sudo service ssh start

这样,我们就开启了ssh服务。

如果不确定的话,还可以运行:

ps -e | grep sshd

如果出现sshd服务,说明已经启动。

2.2 修改ssh的配置文件

sudo vim /etc/ssh/sshd_config

在文中找到对应的地方取消注释,如果找不到就直接添加即可

Port 2222
ListenAddress 0.0.0.0
PasswordAuthentication yes
PermitRootLogin yes

Port不要填22,因为这是windows主机的ssh端口,可能会导致混乱。

i进入编辑模式

全部编辑好后,按esc退为普通模式,再输入:wq保存并退出,这样就修改好了

P.S. vim是Linux系统自带的文本编辑器,若要查看其它用法,访问这个网站:菜鸟教程

三、Windows下的设置

3.1 端口转发

wsl2默认网络模式为NAT模式,外部网络无法访问,所以需要windows开启端口转发。

  1. 查看wsl的IP地址:

    ifconfig
    

    找到eth0对应的inet地址,比如我这里就是172.21.101.233

  2. 配置端口转发

    用管理员模式打开WindowsPowerShell

    运行:

    netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=2222 connectaddress=<WSL2_IP>
    

    其中,<WSL2_IP>替换为刚刚找到的IP地址。

    添加好转发后,我们来验证一下是否添加成功:

    netsh interface portproxy show all
    

    可以看到,端口已经成功转发了。这时,我们的Windows主机就能用ssh连接到wsl。尝试用cmd或者powershell运行一下:

    ssh -p 2222 root@localhost
    

    第一次运行可能会有安全提示:

    The authenticity of host 'localhost (::1)' can't be established.
    ED25519 key fingerprint is SHA256:8eh8ZDi/R/9KQinQ5Pdy+0hK/znqS4GqlYgfGx5SvFM.
    This key is not known by any other names.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    

    它告诉你,“你正在第一次连接这个主机(localhost),我不知道它是不是可信的,请确认它的身份。”输入yes即可,然后在弹出的界面输入用户密码即可成功登录

3.2 配置防火墙

要让外部网络的主机访问到这台主机的数据,防火墙是一定要关闭的。

用管理员身份打开PowerShell,运行

New-NetFirewallRule -DisplayName "Allow SSH" -Direction Inbound -Protocol TCP -LocalPort 2222 -Action Allow

运行以下命令来查看入站规则是否创建:

Get-NetFirewallRule -DisplayName "Allow SSH"

恭喜!截至目前,你的wsl已经可以被局域网设备访问了!

那如果两台电脑不在同一局域网呢?

那就要有请我们的最后一位选手登场:内网穿透软件

四、内网穿透配置

这类软件的作用就相当于把不同局域网的电脑强行拉到了同一个房间内,共同连上一个虚拟的局域网,且这两台电脑其它的网络信息不变。

内网穿透软件有很多,比如ZeroTier、樱花内网穿透、Radmin等等。网上大多教的是ZeroTier,但由于主播平时跟朋友用Radmin来玩局域网联机的游戏,不想装太多软件,所以就用Radmin做内网穿透(效果一样)

两台设备都需要配置内网穿透。

4.1 下载Radmin

  1. 官网下载

    https://www.radmin-lan.cn/
    不用科学上网的话下载会比较慢

  2. 蓝奏云下载:

    https://wwwg.lanzouu.com/i8amL336bjqj
    密码:2k2q

Radmin安装时不能指定安装位置,固定装在C盘

4.2 创建房间

点击红色按钮,上线之后再点击网络>创建网络,输入你想要的房间名称和密码即可。

另一台设备点击网络>加入网络>私人网络,输入一样的名称和密码。

添加好之后,两台设备的情况如下图所示:

请添加图片描述 请添加图片描述

右键房间中的其他设备,选择ping,可以看到是否能够连接上。

4.3 远程尝试

在另一台电脑上,打开cmd,运行命令:

ssh -p 2222 root@26.139.155.200

root替换为自己wsl的用户名

@后面的地址替换为wsl所在主机的Radmin IP

成功登录。

在使用时,我们的wsl就相当于一个服务器,可以在mobaXterm和vscode中连接,服务器(或者开发板)咋用,这个咋用就好啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值