欢迎光临
我们一直在努力

通过tailscale配置ssh远程实现wsl系统VSCode编程

目录

  • 一、内网穿透
    • 第一步:在公司电脑上安装 WSL(Linux 系统)
    • 第二步:在公司电脑上开启 SSH(允许家里远程登录)
    • 第三步:在两台电脑都安装 Tailscale(打通网络)
      • 先在公司电脑安装:
      • 再在家里电脑安装:
      • 查看公司电脑的 Tailscale 地址:
    • 第四步:在家里电脑生成“钥匙”(安全登录用)
      • 操作步骤(在家里电脑做):
      • 找到公钥文件(id_rsa.pub):
      • 把“钥匙”交给公司电脑:
    • 第五步:在家里连接公司电脑,进入 Linux
      • 操作步骤(在家里电脑):
    • 第六步:提示输入密码解决方案
  • 二、配置wsl训练环境
      • 步骤 1:在 WSL 中安装 Miniconda(Python 环境管理器)
      • 步骤 2:创建专门的深度学习环境
      • 步骤3:配置镜像源
      • 步骤 4:安装 PyTorch 和常用库
  • 三、配置家用电脑开发环
    • 准备阶段:在家用电脑上安装必要软件
    • 第一次建立SSH连接(关键步骤)
  • 四、针对WSL系统的内网穿透
      • 1. 第一步:在 WSL 中安装 Tailscale 客户端
      • 2. 第二步:启动 Tailscale 并登录账号
      • 3. 第三步:获取 WSL 的 Tailscale IP 并测试
      • 4. 为 WSL 配置 SSH 公钥登录
        • (1)在 WSL 中创建 `.ssh` 文件夹和授权文件
        • (2)将家里的公钥添加到 WSL
        • (3)确保 WSL 的 SSH 服务已启用并运行
      • 总结:两个系统,两套配置
      • 5. 最终测试:从家里的电脑连接 WSL
      • 6. 安装速度太慢怎么办?
        • (1)清理缓存并重新安装
        • (2)手动下载.deb包安装
      • 7.其他
  • 五、在VS Code中操作远程文件
    • 建立ssh连接
      • 如何使用这个配置
      • 重要提醒:WSL的SSH服务
    • 远程操作

一、内网穿透

整体流程概览(共 5 步)

  • 在公司电脑上安装 WSL(Linux 环境)
  • 在公司电脑上开启 SSH(远程登录功能)
  • 在两台电脑上都安装 Tailscale(让家里能连上公司电脑)
  • 在家里电脑生成“钥匙”并配对公司电脑
  • 在家用命令连接公司电脑,进入 Linux 开发环境
  • 第一步:在公司电脑上安装 WSL(Linux 系统)

    WSL 是微软官方提供的“在 Windows 里运行 Linux”的工具。

  • 点击左下角「开始」按钮 → 输入 PowerShell

  • 右键「Windows PowerShell」 → 选择 “以管理员身份运行”

    • 会弹出一个黑色窗口,标题是 “Windows PowerShell(管理员)”
  • 在黑色窗口里复制粘贴下面这行命令(直接 Ctrl+V 可能不行,右键选择“粘贴”):

    wsl install d Ubuntu-22.04

    • 按回车(Enter)执行
  • 你会看到屏幕显示:

    正在安装 Ubuntu-22.04…
    这可能需要几分钟时间。

    • 电脑会自动下载并安装 Linux 系统(约 1–2 GB)
  • 安装完成后,电脑会提示你重启

    • 点击“立即重启”或稍后手动重启
  • 重启后,第一次启动 Ubuntu 时:

    • 会弹出一个叫 “Ubuntu-22.04” 的小窗口(黑色背景)
    • 它会问你:Enter new UNIX username:
      👉 输入一个英文用户名(比如 xiaoming,不能有空格、中文、特殊符号,不能有大写字母) 👉 按回车New password:
      👉 输入一个密码(比如 123456,输的时候看不到字符,正常!) 👉 按回车Retype new password:
      👉 再次输入同样密码,按回车
  • 看到 $ 符号就说明成功了!

    • 比如:xiaoming@DESKTOP-XXXXXX:~$
    • 你可以关掉这个窗口,以后再用

  • 第二步:在公司电脑上开启 SSH(允许家里远程登录)

  • 再次以管理员身份打开 PowerShell(同上:开始菜单 → PowerShell → 右键 → 管理员)

  • 依次执行下面三行命令(每行输完按回车):

  • Add-WindowsCapability Online Name OpenSSH.Server~~~~0.0.1.0

    ✅ 成功后会显示“已成功添加功能”

    Start-Service sshd

    (没报错就是成功)

    Set-Service Name sshd StartupType 'Automatic'

    (没报错就是成功)

  • 验证是否开启成功:
    • 按 Win + R 键,输入 services.msc 回车
    • 在服务列表里找到 “OpenSSH SSH Server”
    • 看它的“状态”是不是“正在运行”,“启动类型”是不是“自动”
      • 如果不是,右键 → 属性 → 启动类型选“自动” → 应用 → 启动
  • ✅ 第二步完成! 公司电脑现在可以被远程登录了。


    第三步:在两台电脑都安装 Tailscale(打通网络)

    Tailscale 能让家里电脑“看见”公司电脑,就像它们在同一个 WiFi 下。

    先在公司电脑安装:

  • 打开浏览器,访问:https://tailscale.com/download
  • 点击 “Windows” 下的 “Download for Windows”(会下载一个 .exe 文件)
  • 双击运行这个文件(比如叫 Tailscale-1.xx.x.exe)
  • 安装过程一路点“下一步”即可(不需要改设置)
  • 安装完会自动弹出一个登录页面(用 Chrome 或 Edge 打开)
  • 注册/登录一个免费账号(似乎只支持谷歌、苹果、微软、GitHub等账号,不能用163邮箱这种)
  • 登录成功后,你会看到一个绿色对勾 ✅,写着 “You’re connected!”
  • 稍后家里电脑也要登录同一个账号。


    再在家里电脑安装:

  • 同样打开 https://tailscale.com/download
  • 下载 Windows 版,安装(同样一路下一步)
  • 安装完也会弹出登录页面
  • 用和公司电脑完全相同的邮箱账号登录!
  • 登录成功后,也看到绿色对勾 ✅
  • 查看公司电脑的 Tailscale 地址:

  • 在公司电脑,右下角任务栏找到 Tailscale 图标
  • 右键它 → “Copy IP address”
    • 比如复制到的是:100.123.45.67
  • 这个 IP 就是你家里连接公司电脑要用的地址!

    ✅ 第三步完成! 两台电脑现在通过 Tailscale 连在一起了。


    第四步:在家里电脑生成“钥匙”(安全登录用)

    我们用“钥匙”代替密码,更安全也更方便。

    操作步骤(在家里电脑做):

  • 按 Win + R,输入 cmd 回车(打开命令提示符)

  • 在黑色窗口里输入:

    ssh-keygen -t rsa -b 4096

    • 按回车
  • 它会问:

    Enter file in which to save the key (C:\\Users\\你的名字/.ssh/id_rsa):

    👉 直接按回车(用默认位置)

  • 接着问:

    Enter passphrase (empty for no passphrase):

    👉 直接按回车(不要设密码,否则每次都要输)

  • 再按一次回车确认

  • 你会看到一堆图案(像 ASCII 艺术),最后显示:

    Your public key has been saved to C:\\Users\\你的名字\\.ssh\\id_rsa.pub

  • 找到公钥文件(id_rsa.pub):

  • 打开文件资源管理器

  • 地址栏输入:

    %USERPROFILE%\\.ssh

    • 按回车,会打开一个文件夹
  • 里面有个文件叫 id_rsa.pub → 右键它 → “打开方式” → 用记事本打开

  • 全选内容(Ctrl+A)→ 复制(Ctrl+C)

    • 内容看起来像:ssh-rsa AAAAB3NzaC1yc2E…(很长一串)… yourname@DESKTOP-XXXX

  • 把“钥匙”交给公司电脑:

  • 回到公司电脑

  • 打开文件资源管理器,地址栏输入:

    %USERPROFILE%

    • 按回车,进入你的用户文件夹(比如 C:\\Users\\xiaoming)
  • 查看 → 勾选“隐藏的项目”(顶部菜单栏)

    • 这样才能看到 .ssh 文件夹
  • 如果没有 .ssh 文件夹:

    • 右键空白处 → 新建 → 文件夹 → 名字输入 .ssh(注意前面有个点!)
  • 进入 .ssh 文件夹 → 右键 → 新建 → 文本文档

    • 把文件名改成 authorized_keys(去掉 .txt 后缀!)
      • 如果提示“更改扩展名可能不可用”,点“是”
  • 用记事本打开 authorized_keys

    • 把刚才从家里复制的那整行内容粘贴进去
    • 保存(Ctrl+S)
  • ✅ 第四步完成! 家里电脑现在可以用“钥匙”无密码登录公司电脑了。


    第五步:在家里连接公司电脑,进入 Linux

    操作步骤(在家里电脑):

  • 按 Win + R,输入 cmd 回车

  • 输入以下命令(把 100.123.45.67 替换成你之前复制的 Tailscale IP):

    ssh 你的Windows用户名@100.123.45.67

    • 比如你的 Windows 用户名是 xiaoming,IP 是 100.88.99.100,就输:ssh xiaoming@100.88.99.100
      终端内输 exit 或按 Ctrl+D即可断开。
  • 第一次连接会问:

    The authenticity of host '…' can't be established.
    ECDSA key fingerprint is SHA256:xxxx.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?

    👉 输入 yes 并回车

  • 如果配置正确,不会让你输密码!(如果提示输密码看下一步)

    • 直接就进入了公司电脑的命令行,看到:xiaoming@DESKTOP-XXXXXX:~$
  • 输入 wsl 并回车,进入 Linux:

    wsl

    • 你会看到:xiaoming@DESKTOP-XXXXXX:~$
      (但这是 Linux 的提示符!)
  • 试试看 GPU 是否可用:

    nvidia-smi

    • 如果看到显卡信息(型号、显存、温度等),说明 GPU 可用!

  • 第六步:提示输入密码解决方案

    一开始先跟着AI做了一些权限设置,但最关键的原因在于 在 sshd_config 中定义了两个不同的 AuthorizedKeysFile 路径,这会干扰 SSH 查找公钥。

    解决方案(在公司电脑操作)

    第一步:修改 SSH 配置文件

  • 以管理员身份打开 PowerShell
  • 备份原配置文件:Copy-Item C:\\ProgramData\\ssh\\sshd_config C:\\ProgramData\\ssh\\sshd_config.backup
  • 编辑配置文件:notepad C:\\ProgramData\\ssh\\sshd_config
  • 第二步:修改关键配置行

    在记事本中,找到并修改以下几行:

    修改前:

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication yes
    AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

    修改为:只使用用户目录的公钥

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication no
    # 注释掉或删除下面那行
    # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

    第三步:应用配置并重启服务

    保存配置文件后,执行:

    # 重启SSH服务
    Restart-Service sshd

    # 验证服务状态
    Get-Service sshd

    第四步:测试连接

    回到家里电脑,尝试连接:

    ssh -v lenovo@100.123.45.678

    二、配置wsl训练环境

    步骤 1:在 WSL 中安装 Miniconda(Python 环境管理器)

    在 WSL 终端(你当前的 wsl 会话)中执行:

    # 1. 下载Miniconda安装脚本
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

    # 2. 运行安装脚本
    bash Miniconda3-latest-Linux-x86_64.sh

    # 你会看到:
    # ➤ 显示许可证协议(按空格翻页)
    # ➤ 提示 "Do you accept the license terms? [yes|no]"
    # 输入:yes 回车

    # 3. 选择安装位置
    # ➤ 提示 "Miniconda3 will now be installed into this location:"
    # 直接按回车使用默认位置:/home/你的用户名/miniconda3

    # 4. 初始化Conda
    # ➤ 提示 "Do you wish the installer to initialize Miniconda3?"
    # 输入:yes 回车

    # 5. 使配置生效
    source ~/.bashrc

    完成后你会看到:命令提示符前出现 (base),表示已激活 Conda 基础环境。

    步骤 2:创建专门的深度学习环境

    # 1. 创建新环境(命名为dl,Python 3.10)
    conda create -n rllab python=3.10 -y

    # 2. 激活环境
    conda activate rllab

    # 你会看到:(base) 变成 (rllab)

    第一次创建可能会有接受anaconda服务条款的操作,按提示操作即可。

    步骤3:配置镜像源

    关于conda和pip的使用优先级见 安装库是优先用conda还是pip。

    conda 镜像配置(在base)

    # 1. 备份原配置
    conda config –show channels

    # 2. 添加清华镜像(替换默认源)
    conda config –remove-key channels
    conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
    conda config –set show_channel_urls yes

    # 3. 可选:添加北京外国语镜像
    conda config –add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/

    # 4. 验证配置
    conda config –show channels

    pip 镜像配置(在任何环境均可)

    # 1. 创建pip配置文件
    mkdir -p ~/.pip

    # 2. 配置清华pip镜像
    cat > ~/.pip/pip.conf << EOF
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    extra-index-url =
    https://mirrors.aliyun.com/pypi/simple/
    https://pypi.org/simple
    trusted-host =
    pypi.tuna.tsinghua.edu.cn
    mirrors.aliyun.com
    pypi.org
    timeout = 120
    EOF

    # 3. 验证
    pip config list

    步骤 4:安装 PyTorch 和常用库

    # 确保在rllab环境
    conda activate rllab
    # 看到:(rllab) gonglab@hzh25:~$

    # 安装基础科学库(conda,用清华镜像)
    conda install numpy pandas matplotlib scipy jupyter ipython -y

    # 安装PyTorch(根据你的CUDA版本,前面运行nvidia-smi的时候已经显示了)
    # CUDA 12.x:
    pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu121

    # 或CUDA 11.8:
    pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118

    三、配置家用电脑开发环

    准备阶段:在家用电脑上安装必要软件

    第1步:安装VS Code 第2步:安装Remote-SSH扩展 第3步:确认Tailscale已连接

    第一次建立SSH连接(关键步骤)

    第4步:在VS Code中启动连接

  • 点击左下角绿色图标 ><(或者显示 “Open a Remote Window”)
  • 选择:Connect to Host…
  • 选择:+ Add New SSH Host…
  • 你会看到顶部弹出输入框:

    Enter SSH connection command (e.g. user@host):

    第5步:输入连接命令 在这里输入(替换为你的实际信息):

    lenovo@100.123.45.678

    • lenovo:你的Windows用户名(公司电脑的)
    • 100.123.45.678:你的Tailscale IP(公司电脑的)

    按回车后:

  • 选择SSH配置文件位置:选择第一个 C:\\Users\\你的名字\\.ssh\\config
  • VS Code右下角弹出:Host added! ✅
  • 第6步:连接主机

  • 再次点击左下角绿色图标 ><
  • 现在你会看到:100.123.45.678 出现在列表中
  • 点击它开始连接
  • 第一次连接的重要提示:

    第7步:处理第一次连接的安全提示 你会看到弹窗:

    The host's authenticity can't be established.
    ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Are you sure you want to continue connecting?

    这是正常的安全警告,因为第一次连接这台机器。

    操作:

  • 点击"Continue"(不是"Cancel"!)
  • 稍等片刻(VS Code在后台建立连接)
  • 第8步:选择平台类型 接下来可能看到(可能没有这步):

    Select the platform of the remote host:
    1. Linux
    2. macOS
    3. Windows

    如果到目前为止都是按照前面的步骤做的,那选择Linux可能会报错,因为前面最一开始内网穿透其实是针对Windows系统配置的。但实际上我们最终需要的是Linux,因为我们要连接WSL。但是由于针对WSL的内网穿透要稍微麻烦点,所以把这一步放在后面。 这里先暂时选Windows。

    第9步:输入密码(第一次需要) 重要:这是唯一一次需要输密码!

    你会看到顶部弹窗:

    Enter password for lenovo@100.123.45.678:

    输入:你的Windows登录密码(公司电脑的密码)

    注意:

    • 输入时看不到字符,正常!
    • 输完直接按回车
    • 如果密码错误,会重新提示

    第10步:等待连接完成 VS Code会:

  • 打开新窗口
  • 左下角显示 Connecting to 100.123.45.678…
  • 进度条走动
  • 最终显示:SSH: 100.123.45.678
  • 连接成功标志:

  • 左下角状态:SSH: 100.123.45.678
  • 可以打开终端:查看 → 终端 或按 Ctrl+
  • 终端显示:lenovo@hzh25 C:\\Users\\lenovo>
  • 四、针对WSL系统的内网穿透

    前面在公司电脑上所做的配置实际上是针对Windows系统所做的内网穿透,因此还并不能使用该电脑上的WSL系统。 针对WSL系统需要单独再做一套内网穿透。

    1. 第一步:在 WSL 中安装 Tailscale 客户端

    操作:在 WSL 终端中,逐行复制粘贴以下命令并执行。

    # 1. 导入Tailscale的GPG密钥和软件源(确保安装包来源可信)
    curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.gpg | sudo apt-key add
    curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.list | sudo tee /etc/apt/sources.list.d/tailscale.list

    执行后你应该会看到:

    • 第一行命令执行后通常没有输出,或显示 OK。
    • 第二行命令执行后会显示添加的软件源内容,例如:deb https://pkgs.tailscale.com/stable/ubuntu focal main

    接着执行:

    # 2. 更新软件包列表并安装Tailscale
    sudo apt-get update
    sudo apt-get install tailscale -y

    执行后你应该会看到:

    • update 命令会滚动刷新软件源列表。
    • install 命令会显示安装进度,最后出现 Setting up tailscale (x.x.x) … 表示安装成功。

    2. 第二步:启动 Tailscale 并登录账号

    操作:继续在 WSL 终端中执行。

    # 3. 启动Tailscale服务
    sudo systemctl start tailscaled

    执行后通常没有输出,表示启动成功。如果遇到 Failed to start tailscaled.service,不用慌,我们有一个备用方案,稍后解决。

    接下来是关键步骤:登录。请执行:

    # 4. 登录你的Tailscale账号(必须和Windows上的是同一个!)
    sudo tailscale up

    执行后你会看到: 终端会显示一个超链接,格式如下:

    To authenticate, visit:
    https://login.tailscale.com/a/xxxxxxxxxx

  • 请完全复制这个链接。
  • 在你公司电脑的Windows 系统里,打开 Chrome 或 Edge 浏览器,粘贴并访问这个链接。
  • 网页会显示你的账号,点击 “Connect” 或 “批准” 按钮。
  • 批准成功后,WSL 终端里会自动显示连接成功信息,例如:

    Success.


    3. 第三步:获取 WSL 的 Tailscale IP 并测试

    操作:登录成功后,在 WSL 终端继续执行。

    # 5. 查看WSL的Tailscale专属IP地址
    tailscale ip

    执行后你会看到: 会显示 1 个或 2 个 IP 地址,一个是 100.x.x.x (IPv 4),一个是 fd7a:xxxx:xxxx::x (IPv 6)。 请记下 100 开头的这个 IPv 4 地址,例如 100.123.45.789。这个 IP 和你 Windows 的 Tailscale IP 不同。

    验证网络状态:

    # 6. 检查节点状态
    tailscale status

    你会看到类似输出,确认你的 WSL(主机名可能是 ubuntu 或 DESKTOP-XXX)状态为 Active:

    100.123.45.789 ubuntu your-email@example.com Linux active


    4. 为 WSL 配置 SSH 公钥登录

    WSL 是一个独立的 Linux 系统,它有自己的用户账户和 SSH 配置。之前在 Windows 上配置的公钥(在 C:\\Users\\lenovo\\.ssh\\ 里)只对 Windows 的 SSH 服务有效。

    现在需要把家里的公钥也配置到WSL 系统的 Linux 用户里。

    在公司电脑上,进入 WSL 的 Ubuntu 终端,然后按以下步骤操作:

    (1)在 WSL 中创建 .ssh 文件夹和授权文件

    # 1. 进入你的用户主目录
    cd ~

    # 2. 创建 .ssh 目录并设置严格权限(非常重要!)
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh

    # 3. 创建 authorized_keys 文件并设置权限
    touch ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

    (2)将家里的公钥添加到 WSL

    现在需要把家里电脑 id_rsa.pub 的内容,放到 WSL 的 authorized_keys 文件里。

    方法 A(推荐):如果 WSL 可以访问 Windows 文件 先把家里电脑的. ssh/id_rsa. pub 文件发送到公司电脑的下载文件夹中。 在 WSL 终端执行:

    # 1. 查看你家里公钥的内容(从Windows目录读取)
    cat /mnt/c/Users/lenovo/Downloads/id_rsa.pub

    # 2. 将公钥内容添加到WSL的授权文件
    cat /mnt/c/Users/lenovo/Downloads/id_rsa.pub >> ~/.ssh/authorized_keys

    注意:如果 Windows 用户名不是 lenovo,请替换路径中的 lenovo 为你的实际用户名。

    方法 B:手动复制粘贴

  • 在家里电脑上,用记事本打开 C:\\Users\\你的用户名\\.ssh\\id_rsa.pub,复制全部内容。
  • 在公司电脑的 WSL 终端里,用 nano 编辑器打开授权文件:nano ~/.ssh/authorized_keys
  • 将复制的公钥内容粘贴到 nano 编辑器中(在 WSL 终端里,通常用 Ctrl+Shift+V 或右键粘贴)。
  • 按 Ctrl+X 退出,按 Y 保存,再按 Enter 确认文件名。
  • (3)确保 WSL 的 SSH 服务已启用并运行

    # 1. 确保SSH服务器已安装
    sudo apt update
    sudo apt install openssh-server -y

    # 2. 启动SSH服务
    sudo service ssh start # 或 sudo systemctl start ssh

    # 3. 检查SSH服务状态
    sudo service ssh status

    如果状态显示 active (running) 就对了。

    总结:两个系统,两套配置

    现在你拥有了两套独立的 SSH 连接:

    连接目标IP 地址用户名公钥位置
    公司 Windows 系统 100.123.45.678 lenovo (Windows 用户) C:\\Users\\lenovo\\.ssh\\authorized_keys
    公司 WSL 系统 100.123.45.789 你的WSL用户名 (Linux 用户) ~/.ssh/authorized_keys (WSL 内)

    5. 最终测试:从家里的电脑连接 WSL

    现在,回到你家里的电脑,打开命令提示符,尝试用新的 WSL IP进行连接:

    ssh 你的WSL用户名@100.123.45.789

    请将 你的WSL用户名 替换为你在 WSL 里创建的用户名(第一步安装 WSL 时设置的),将 100.123.45.789 替换为你刚刚记下的 IP。

    如果连接成功,你会直接进入 WSL 的 Ubuntu 命令行,不再需要 Windows 密码。

    6. 安装速度太慢怎么办?

    安装Tailscale的时候发现下载速度极慢,哪怕根据AI的意见修改的镜像源、用了VPN还是没起色。后来还是在Windows下单独下载了.deb安装包,然后直接用安装包安装。

    (1)清理缓存并重新安装

    这是因为APT有断点续传和缓存机制,中断后会从缓存继续。如果之前用Ctrl+C中断了下载,可能需要彻底清理缓存,强制重新下载。

    在WSL终端中,依次执行以下命令:

    # 1. 清理已下载的tailscale缓存包(关键!)
    sudo apt-get clean
    sudo rm -rf /var/lib/apt/lists/*partial/*

    # 2. 再次更新软件列表(使用新源)
    sudo apt-get update

    (2)手动下载.deb包安装
  • 在Windows浏览器中直接下载安装包:

    • 打开Edge/Chrome,访问:https://pkgs.tailscale.com/stable/tailscale_1.94.1_amd64.deb
      (这个版本号是刚才下载时在终端信息中看到的,如需查看其他版本号可访问 https://pkgs.tailscale.com/stable/ 查看)
    • 文件会自动下载到 C:\\Users\\lenovo\\Downloads\\(你的下载目录)。
  • 在WSL中安装此包: 回到WSL终端,执行:

    # 进入Windows下载目录(注意:lenovo换成你的用户名)
    cd /mnt/c/Users/lenovo/Downloads/

    # 安装.deb包
    sudo dpkg -i tailscale_*.deb

    # 安装可能缺失的依赖
    sudo apt-get install -f -y

  • 7.其他

    家里电脑 SSH 连接失败? 可能原因:WSL 内的 SSH 服务器没开。 解决:在公司电脑 WSL 内执行:

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

    然后再次尝试从家里连接。

    成功后的关键点:两个独立 IP。现在你有了两个 Tailscale IP:一个是 Windows 的(如 100.123.45.678),一个是 WSL 的(如 100.123.45.789)。远程深度学习请使用 WSL 的 IP。

    五、在VS Code中操作远程文件

    建立ssh连接

    建立ssh连接的过程和前面Windows下的基本一致。另外其实可以在家用电脑的 C:\\Users\\admin\\.ssh\\config 文件中做配置,这样之后ssh连接的名称就不用记IP了。下面是一个示例:

    # 公司电脑的WSL连接 (主用,用于深度学习开发)
    Host company_wsl
    HostName 100.123.45.789
    User gonglab
    # Port 22 可以省略,因为22是SSH默认端口
    # IdentityFile ~/.ssh/id_rsa # 如果密钥不是默认位置可以指定

    # 公司电脑的Windows连接(备用,用于管理Windows文件或服务)
    Host company_win
    HostName 100.123.45.678
    User lenovo
    # Port 22 同样可以省略

    如何使用这个配置

  • 在VS Code中连接:

    • 按 F1 打开命令面板。
    • 输入 Remote-SSH: Connect to Host… 并选择。
    • 你会看到一个下拉列表,里面就有你定义的 company_wsl 和 company_win 两个主机别名。
    • 选择 company_wsl 即可连接。
  • 在命令行中连接:

    • 配置好后,你无需再记IP地址。
    • 打开命令提示符或PowerShell,直接输入:ssh company_wsl
      效果等同于 ssh gonglab@100.123.45.789。
  • 重要提醒:WSL的SSH服务

    确保WSL内的SSH服务正在运行,这是连接成功的前提。如果之前没配置,需要在公司电脑的WSL终端中执行:

    sudo apt update && sudo apt install openssh-server -y
    sudo service ssh start
    # 可选:设置开机自启(对于WSL,需要配置Windows任务计划,较为复杂,通常手动启动即可)

    远程操作

    需要注意的是在WSL中需要重新安装python等插件,对于代码也要选择对应的python解释器,否则解析不了安装的库。

    打开远程文件夹,在终端中输入:

    cd /mnt/d/Academic/projects
    code .

    下面是一个示例代码,如果能运行则意味着上述配置成功。

    import gymnasium as gym
    import torch
    import torch.nn as nn
    import torch.optim as optim
    import numpy as np

    # ————————–
    # 1. 定义简单的深度Q网络(DQN)
    # ————————–
    class SimpleDQN(nn.Module):
    def __init__(self, state_dim, action_dim):
    super(SimpleDQN, self).__init__()
    # 极简的全连接网络,适合CartPole这种简单环境
    self.fc = nn.Sequential(
    nn.Linear(state_dim, 64), # 输入层:状态维度→隐藏层
    nn.ReLU(), # 激活函数
    nn.Linear(64, action_dim) # 输出层:隐藏层→动作维度
    )

    def forward(self, x):
    return self.fc(x)

    # ————————–
    # 2. 环境初始化与参数设置
    # ————————–
    # 创建CartPole环境(经典控制任务,状态维度4,动作维度2)
    env = gym.make("CartPole-v1")
    state_dim = env.observation_space.shape[0] # 状态维度:4
    action_dim = env.action_space.n # 动作维度:2(左/右)

    # 初始化模型、优化器和损失函数
    model = SimpleDQN(state_dim, action_dim)
    optimizer = optim.Adam(model.parameters(), lr=0.001)
    criterion = nn.MSELoss()

    # ————————–
    # 3. 极简的训练循环(仅用于环境测试)
    # ————————–
    def test_training_step():
    # 重置环境,获取初始状态
    state, _ = env.reset()
    total_reward = 0
    done = False

    while not done:
    # 将状态转换为PyTorch张量(适配模型输入)
    state_tensor = torch.FloatTensor(state).unsqueeze(0)

    # 模型预测动作价值
    q_values = model(state_tensor)

    # 随机选择动作(简化版,实际DQN会用ε-贪心策略)
    action = np.random.choice(action_dim)

    # 执行动作,获取环境反馈
    next_state, reward, terminated, truncated, _ = env.step(action)
    done = terminated or truncated # 任务结束标志
    total_reward += reward

    # ————————–
    # 极简的DQN更新逻辑(仅用于测试)
    # ————————–
    # 目标Q值(简化:直接用即时奖励)
    target_q = torch.FloatTensor([reward])
    # 当前Q值(模型预测的选中动作的价值)
    current_q = q_values.squeeze(0)[action]
    # 计算损失并更新模型
    loss = criterion(current_q, target_q)
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    # 更新状态
    state = next_state

    return total_reward

    # ————————–
    # 4. 运行测试
    # ————————–
    if __name__ == "__main__":
    # 打印环境和设备信息(验证配置)
    print(f"✅ 环境加载成功:CartPole-v1")
    print(f"✅ 状态维度:{state_dim},动作维度:{action_dim}")
    print(f"✅ PyTorch设备:{'GPU' if torch.cuda.is_available() else 'CPU'}")

    # 运行5个测试回合
    for episode in range(5):
    reward = test_training_step()
    print(f"回合 {episode+1} | 总奖励:{reward}")

    # 关闭环境
    env.close()
    print("\\n🎉 所有测试完成!如果没有报错,说明你的DRL环境配置正常。")

    赞(0)
    未经允许不得转载:171主机测评 » 通过tailscale配置ssh远程实现wsl系统VSCode编程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址