目录
- 一、内网穿透
-
- [第一步:在公司电脑上安装 WSL(Linux 系统)](#第一步:在公司电脑上安装 WSL(Linux 系统))
- [第二步:在公司电脑上开启 SSH(允许家里远程登录)](#第二步:在公司电脑上开启 SSH(允许家里远程登录))
- [第三步:在两台电脑都安装 Tailscale(打通网络)](#第三步:在两台电脑都安装 Tailscale(打通网络))
- 第四步:在家里电脑生成"钥匙"(安全登录用)
- [第五步:在家里连接公司电脑,进入 Linux](#第五步:在家里连接公司电脑,进入 Linux)
- 第六步:提示输入密码解决方案
- 二、配置wsl训练环境
-
-
- [步骤 1:在 WSL 中安装 Miniconda(Python 环境管理器)](#步骤 1:在 WSL 中安装 Miniconda(Python 环境管理器))
- [步骤 2:创建专门的深度学习环境](#步骤 2:创建专门的深度学习环境)
- 步骤3:配置镜像源
- [步骤 4:安装 PyTorch 和常用库](#步骤 4:安装 PyTorch 和常用库)
-
- 三、配置家用电脑开发环
- 四、针对WSL系统的内网穿透
-
-
- [1. 第一步:在 WSL 中安装 Tailscale 客户端](#1. 第一步:在 WSL 中安装 Tailscale 客户端)
- [2. 第二步:启动 Tailscale 并登录账号](#2. 第二步:启动 Tailscale 并登录账号)
- [3. 第三步:获取 WSL 的 Tailscale IP 并测试](#3. 第三步:获取 WSL 的 Tailscale IP 并测试)
- [4. 为 WSL 配置 SSH 公钥登录](#4. 为 WSL 配置 SSH 公钥登录)
-
- [(1)在 WSL 中创建 `.ssh` 文件夹和授权文件](#(1)在 WSL 中创建
.ssh文件夹和授权文件) - [(2)将家里的公钥添加到 WSL](#(2)将家里的公钥添加到 WSL)
- [(3)确保 WSL 的 SSH 服务已启用并运行](#(3)确保 WSL 的 SSH 服务已启用并运行)
- [(1)在 WSL 中创建 `.ssh` 文件夹和授权文件](#(1)在 WSL 中创建
- 总结:两个系统,两套配置
- [5. 最终测试:从家里的电脑连接 WSL](#5. 最终测试:从家里的电脑连接 WSL)
- [6. 安装速度太慢怎么办?](#6. 安装速度太慢怎么办?)
- 7.其他
-
- [五、在VS Code中操作远程文件](#五、在VS Code中操作远程文件)
一、内网穿透
整体流程概览(共 5 步)
- 在公司电脑上安装 WSL(Linux 环境)
- 在公司电脑上开启 SSH(远程登录功能)
- 在两台电脑上都安装 Tailscale(让家里能连上公司电脑)
- 在家里电脑生成"钥匙"并配对公司电脑
- 在家用命令连接公司电脑,进入 Linux 开发环境
第一步:在公司电脑上安装 WSL(Linux 系统)
WSL 是微软官方提供的"在 Windows 里运行 Linux"的工具。
-
点击左下角「开始」按钮 → 输入
PowerShell -
右键「Windows PowerShell」 → 选择 "以管理员身份运行"
- 会弹出一个黑色窗口,标题是 "Windows PowerShell(管理员)"
-
在黑色窗口里复制粘贴下面这行命令(直接 Ctrl+V 可能不行,右键选择"粘贴"):
powershellwsl --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 → 右键 → 管理员)
-
依次执行下面三行命令(每行输完按回车):
powershell
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
✅ 成功后会显示"已成功添加功能"
powershell
Start-Service sshd
(没报错就是成功)
powershell
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回车(打开命令提示符) -
在黑色窗口里输入:
cmdssh-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):cmdssh 你的Windows用户名@100.123.45.67-
比如你的 Windows 用户名是
xiaoming,IP 是100.88.99.100,就输:cmdssh 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:bashwsl-
你会看到:
xiaoming@DESKTOP-XXXXXX:~$(但这是 Linux 的提示符!)
-
-
试试看 GPU 是否可用:
bashnvidia-smi- 如果看到显卡信息(型号、显存、温度等),说明 GPU 可用!
第六步:提示输入密码解决方案
一开始先跟着AI做了一些权限设置,但最关键的原因在于 在 sshd_config 中定义了两个不同的 AuthorizedKeysFile 路径,这会干扰 SSH 查找公钥。
解决方案(在公司电脑操作)
第一步:修改 SSH 配置文件
-
以管理员身份打开 PowerShell
-
备份原配置文件:
powershellCopy-Item C:\ProgramData\ssh\sshd_config C:\ProgramData\ssh\sshd_config.backup -
编辑配置文件:
powershellnotepad 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
第三步:应用配置并重启服务
保存配置文件后,执行:
powershell
# 重启SSH服务
Restart-Service sshd
# 验证服务状态
Get-Service sshd
第四步:测试连接
回到家里电脑,尝试连接:
cmd
ssh -v lenovo@100.123.45.678
二、配置wsl训练环境
步骤 1:在 WSL 中安装 Miniconda(Python 环境管理器)
在 WSL 终端(你当前的 wsl 会话)中执行:
bash
# 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:创建专门的深度学习环境
bash
# 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)
bash
# 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 镜像配置(在任何环境均可)
bash
# 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 和常用库
bash
# 确保在rllab环境
conda activate rllab
# 看到:(rllab) gonglab@hzh25:~$
# 安装基础科学库(conda,用清华镜像)
conda install numpy pandas matplotlib scipy jupyter ipython -y
bash
# 安装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 终端中,逐行复制粘贴以下命令并执行。
bash
# 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
接着执行:
bash
# 2. 更新软件包列表并安装Tailscale
sudo apt-get update
sudo apt-get install tailscale -y
执行后你应该会看到:
update命令会滚动刷新软件源列表。install命令会显示安装进度,最后出现Setting up tailscale (x.x.x) ...表示安装成功。
2. 第二步:启动 Tailscale 并登录账号
操作:继续在 WSL 终端中执行。
bash
# 3. 启动Tailscale服务
sudo systemctl start tailscaled
执行后通常没有输出,表示启动成功 。如果遇到 Failed to start tailscaled.service,不用慌,我们有一个备用方案,稍后解决。
接下来是关键步骤:登录。请执行:
bash
# 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 终端继续执行。
bash
# 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 不同。
验证网络状态:
bash
# 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 文件夹和授权文件
bash
# 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 终端执行:
bash
# 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 编辑器打开授权文件:
bashnano ~/.ssh/authorized_keys -
将复制的公钥内容粘贴 到 nano 编辑器中(在 WSL 终端里,通常用
Ctrl+Shift+V或右键粘贴)。 -
按
Ctrl+X退出,按Y保存,再按Enter确认文件名。
(3)确保 WSL 的 SSH 服务已启用并运行
bash
# 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进行连接:
cmd
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终端中,依次执行以下命令:
bash
# 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终端,执行:
bash# 进入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 内执行:
bash
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了。下面是一个示例:
ssh-config
# 公司电脑的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,直接输入:
bashssh company_wsl效果等同于
ssh gonglab@100.123.45.789。
-
重要提醒:WSL的SSH服务
确保WSL内的SSH服务正在运行,这是连接成功的前提。如果之前没配置,需要在公司电脑的WSL终端中执行:
bash
sudo apt update && sudo apt install openssh-server -y
sudo service ssh start
# 可选:设置开机自启(对于WSL,需要配置Windows任务计划,较为复杂,通常手动启动即可)
远程操作
需要注意的是在WSL中需要重新安装python等插件,对于代码也要选择对应的python解释器,否则解析不了安装的库。
打开远程文件夹,在终端中输入:
bash
cd /mnt/d/Academic/projects
code .
下面是一个示例代码,如果能运行则意味着上述配置成功。
python
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环境配置正常。")