乐于分享
好东西不私藏

通过服务器访问自己的电脑

通过服务器访问自己的电脑

通过服务器访问自己的电脑-20260320

先给自己的笔记本电脑安装SSH.Server

管理员打开powershell,运行:

Get-WindowsCapability -Online | Where-Object Name -like OpenSSH*

返回:

(base) PS C:\Users\13283> Get-WindowsCapability -Online | Where-Object Name -like OpenSSH*Name  : OpenSSH.Client~~~~0.0.1.0State : InstalledName  : OpenSSH.Server~~~~0.0.1.0State : NotPresent

提示安装了OpenSSH.Client,但是没有OpenSSH.Server。

安装OpenSSH.Server。

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

这一步需要挺久的,很容易以为是卡住了,不过确实不要关,等他自己运行完。

image-20260324152701972

最后运行结束:

(base) PS C:\Users\13283> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0Path          :Online        : TrueRestartNeeded : False

请按顺序在同一个管理员 PowerShell 中继续执行以下命令:

第 1 步:启动 OpenSSH 服务并设置开机自启

Start-Service sshdSet-Service -Name sshd -StartupType Automatic

第 2 步:添加防火墙规则(允许外部连接 22 端口)

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

第 3 步:验证服务是否正在运行

Get-Service sshd

应该显示 Status: Running

第 4 步:验证 22 端口是否已经在监听

PowerShell

netstat -ano | findstr :22

(应该看到一行 TCP    0.0.0.0:22 或 TCP    [::]:22)


执行完后立刻在本机测试 SSH 是否可用

ssh 13283@localhost
  • 如果提示输入密码 → 说明本地 SSH 服务正常!
  • 输入你的 Windows 账户密码后,应该能成功进入命令行。

代码返回:

(base) PS C:\Users\13283> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0Path          :Online        : TrueRestartNeeded : False(base) PS C:\Users\13283> Start-Service sshd(base) PS C:\Users\13283> Set-Service -Name sshd -StartupType Automatic(base) PS C:\Users\13283> New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22Name                          : sshdDisplayName                   : OpenSSH Server (sshd)Description                   :DisplayGroup                  :Group                         :Enabled                       : TrueProfile                       : AnyPlatform                      : {}Direction                     : InboundAction                        : AllowEdgeTraversalPolicy           : BlockLooseSourceMapping            : FalseLocalOnlyMapping              : FalseOwner                         :PrimaryStatus                 : OKStatus                        : 已从存储区成功分析规则。 (65536)EnforcementStatus             : NotApplicablePolicyStoreSource             : PersistentStorePolicyStoreSourceType         : LocalRemoteDynamicKeywordAddresses : {}PolicyAppId                   :PackageFamilyName             :(base) PS C:\Users\13283> Get-Service sshdStatus   Name               DisplayName------   ----               -----------Running  sshd               OpenSSH SSH Server(base) PS C:\Users\13283> netstat -ano | findstr :22  TCP    0.0.0.0:22             0.0.0.0:0              LISTENING       25712  TCP    127.0.0.1:22684        0.0.0.0:0              LISTENING       123984  TCP    [::]:22                [::]:0                 LISTENING       25712(base) PS C:\Users\13283> tasklist.exe | findstr.exe 25712sshd.exe                     25712 Services                   0     11,276 K

本地的ssh服务配置好了,就可以用cpolar了。

cpolar tcp 22

返回:

cpolar by @bestexpresser                                                                                (Ctrl+C to quit)Tunnel Status       onlineAccount             kichen (Plan: Pro)Version             3.18/3.18Web Interface       127.0.0.1:4042Forwarding          tcp://6.tcp.vip.cpolar.cn:13442 -> tcp://127.0.0.1:22# Conn              0Avg Conn Time       0.00ms

在服务器上可以访问本地了:

ssh 13283@6.tcp.vip.cpolar.cn -p 13442

需要输入密码,密码就是你的开机密码。

这里有一个bug,就是很多电脑都没有开机密码,都用的是PIN码,PIN码很简单,可能4位数字就够了。

关于找不到自己笔记本电脑的开机密码的解决办法:win+I,打开设置,账户,登录选项,关闭Windows Hello。

如果不关闭这个,是看不到登录方式下有 密码这个选项的。

截图_20260330105238

因为每次cpolar穿透的时候,就会更换公网地址,所以暴露也无所谓。

进去以后处于cmd的命令行:

说一点最实用、最基础的 CMD 语法

1. 最常用的几个命令

命令
作用
示例
说明
dir
显示当前目录下的文件和文件夹
dir
 或 dir /a
/a
 显示隐藏文件
cd
切换目录
cd C:\Users\你的用户名
切换到指定路径
cd ..
返回上一级目录
cd ..
超级常用
mkdir
创建文件夹
mkdir 新文件夹
也可以写 md 新文件夹
copy
复制文件
copy 文件1.txt D:\备份\
复制单个文件
xcopy
复制整个文件夹
xcopy C:\data D:\备份\ /s /e/s /e
 包含子文件夹
del
删除文件
del 文件.txt
小心用!
rd
删除空文件夹
rd 文件夹名
文件夹必须为空
cls
清屏
cls
界面干净一点
echo
输出内容
echo Hello World
也可以用来写文件

2. 路径写法小技巧(超级重要!)

  • Windows 路径用 反斜杠\示例:cd C:\Users\Administrator\Desktop

  • 如果路径有空格,必须用双引号包起来 示例:cd "C:\Program Files\My Folder"

  • 快速回到 C 盘根目录:cd \快速回到用户文件夹:cd %userprofile%

3. 你现在远程连接时特别有用的命令

ipconfig                  # 查看当前笔记本的 IP 地址ping 192.168.1.100        # 测试能不能连上服务器(把 IP 换成服务器的)whoami                    # 查看当前登录的是哪个用户tasklist                  # 查看正在运行的程序netstat -ano              # 查看网络连接(看端口占用)systeminfo                # 查看笔记本系统信息(超详细)

4. 快捷键(提升效率)

  • ↑↓ 方向键:调出上一条/下一条命令(超级好用)
  • Tab:自动补全文件名或文件夹名
  • Ctrl + C:强行停止当前命令(比如 ping 一直跑的时候)
  • Ctrl + V:粘贴(Windows 10/11 CMD 已经支持)
  • F7:显示命令历史记录

5. 一个实用小例子(你现在可以直接复制试试)

# 1. 先看看你在哪里dir# 2. 去桌面cd %userprofile%\Desktop# 3. 创建一个叫“备份”的文件夹mkdir 备份# 4. 把桌面所有文件复制到这个备份文件夹xcopy *.* 备份\ /s /e /y# 5. 清屏cls

如果cmd的代码有点生疏,切换起来不方便,可以直接用powershell,跟shell很像。

你现在在 CMD 界面里,只要输入下面这行回车,就能立刻进入 PowerShell:

powershell

1. 最常用命令(Linux → PowerShell 直接对照表)

Linux 命令
PowerShell 命令(推荐)
别名(可以直接用 Linux 写法)
作用
示例
ls
 / ll
Get-ChildItemls
dir
显示当前目录内容
ls -a
(显示隐藏文件)
cdSet-Locationcd
切换目录
cd ~/Desktop
 或 cd C:\Users\你的用户名
cd ..Set-Location ..cd ..
返回上一级
cd ..
mkdirNew-Item -ItemType Directorymkdir
md
创建文件夹
mkdir 新文件夹
cpCopy-Itemcp
copy
复制文件/文件夹
cp 文件.txt D:\备份\
mvMove-Itemmv
move
移动/重命名
mv 旧名.txt 新名.txt
rmRemove-Itemrm
del
删除文件
rm 文件.txt
(加 -r 删除文件夹)
rm -rRemove-Item -Recurse -Forcerm -r
强制删除文件夹
rm -r 旧文件夹
catGet-Contentcat
type
查看文件内容
cat 文件.txt
touchNew-Itemtouch
创建空文件
touch 新文件.txt
echoWrite-Outputecho
输出内容
echo "Hello World"
clear
 / cls
Clear-Hostclear
cls
清屏
clear

小技巧(和 Linux 几乎一样):

  • 路径支持 / 和 \ 都可以(PowerShell 更聪明) 示例:cd C:/Users/你的用户名/Desktop
  • 路径有空格用双引号:cd "C:/Program Files"
  • 回到家目录:cd ~ 或 cd $env:USERPROFILE
  • 快速补全:Tab 键(比 Linux 还强,能补全参数)

2. 你远程连接服务器时特别有用的 PowerShell 命令(Linux 风格)

# 查看 IP(类似 ifconfig/ip addr)Get-NetIPAddress | Select-Object IPAddress, InterfaceAlias# 测试连通性(类似 ping)Test-NetConnection 192.168.1.100 -Port 3389   # 测试远程桌面端口# 查看当前用户(类似 whoami)whoami# 查看正在运行的进程(类似 ps)Get-Process | Sort-Object CPU -Descending# 查看网络连接(类似 netstat)Get-NetTCPConnection | Select-Object LocalPort, State, RemoteAddress# 系统信息(比 systeminfo 更强大)Get-ComputerInfo | Select-Object WindowsVersion, WindowsBuildLabEx# 查看磁盘空间(类似 df -h)Get-Volume

3. 实用小例子(直接复制粘贴就能跑)

# 1. 先看看你在哪里ls# 2. 去桌面cd ~/Desktop# 3. 创建备份文件夹mkdir 备份# 4. 把桌面所有文件复制到备份文件夹(支持子文件夹)cp *.* .\备份\ -Recurse -Force# 5. 清屏clear

PowerShell 最强大之处在于管道(|) 和对象,不像 Linux 只是文本流:

# 示例:列出占用 CPU 前 5 的进程Get-Process | Sort-Object CPU -Descending | Select-Object -First 5# 示例:查找包含 “关键词” 的文件(类似 grep + find)Get-ChildItem -Recurse -Filter *.txt | Select-String "关键词"

退出powershell,就输入:

exit

如果你觉得powershell还不够熟悉,那就直接进入WSL吧,纯linux操作。

1. 快速检查 WSL 是否已安装(在 CMD 里直接敲)

wsl --list --verbose
  • 如果显示已安装的发行版(如 Ubuntu),就可以直接用了。
  • 如果提示“未找到 wsl”,说明 WSL 还没启用,需要先安装(见最下面)。

2. 在 CMD 里打开 WSL 的几种方式

想做什么
CMD 命令
说明
直接进入默认 WSL(推荐)
wsl
立刻进入 Linux shell(bash/zsh)
进入指定发行版
wsl -d Ubuntu
把 Ubuntu 换成你的发行版名
直接运行一条 Linux 命令
(最强!)
wsl echo "Hello from Linux!"
不进入 shell,直接执行完就返回 CMD
指定发行版运行命令
wsl -d Ubuntu -- ls -la /home--
 后面跟完整的 Linux 命令
运行多行/复杂命令
wsl -d Ubuntu -- bash -c "cd /tmp && ls"
用 bash -c 包裹多条命令

超实用例子(你现在直接复制试试):

# 1. 直接在 WSL 里查看 Linux 文件系统wsl ls -la ~# 2. 在 WSL 里运行 Python(假设你 WSL 里装了 Python)wsl python3 -c "print('我在 WSL 里跑代码啦!')"# 3. 进入 WSL 后直接执行你熟悉的 Linux 工作流wsl -d Ubuntu -- bash -c "cd ~/project && git status && python3 main.py"

3. 路径互通小技巧(Windows ↔ WSL)

  • 在 WSL 里访问 Windows 文件:/mnt/c/Users/你的用户名/
  • 在 CMD 里访问 WSL 文件:\\wsl$\Ubuntu\home\你的用户名\(直接复制粘贴用)
  • 推荐用 PowerShell 的话路径更友好(wsl 命令也完全支持)。

4. 如果 WSL 还没安装(一键安装)

在 CMD(最好用管理员身份运行)直接敲下面这行:

wsl --install

它会自动安装 WSL + 默认 Ubuntu。装完重启一下笔记本就行。


cmd界面直接输入:wsl就进入wsl界面,输入exit,就可以退出。

image-20260326163948474