【小白零门槛】从零构建内网穿透:用笔记本随时随地访问家里的AI服务器

31 阅读16分钟

0. 前言:为什么要做这个?(小白也能懂的场景)

需求场景:

你家里/实验室有一台性能超强的台式机(或服务器),能跑深度学习模型、大型编程项目这些“费力气”的任务;而你手里只有一台轻薄本,出门在咖啡厅、出差的时候,想远程操控家里的高性能电脑干活,或者监控项目运行情况。

痛点:

家里的宽带就像“没有门牌号的房子”,没有“公网IP”这个唯一标识,外面的轻薄本根本找不到家里的电脑。

解决方案:FRP(Fast Reverse Proxy)内网穿透

简单说就是找个“中间中转站”——一台有公网IP(相当于有公开门牌号)的云服务器,搭建一条“隐形隧道”:

  1. 家里的高性能电脑主动连接到云服务器;

  2. 你的轻薄本也连接到同一个云服务器;

  3. 云服务器把两头连起来,轻薄本就能通过隧道操控家里的电脑了。


第一阶段:云端准备 —— 阿里云服务器购买与配置(一步都不落地教)

要实现穿透,第一步必须有个“有门牌号的中转站”,也就是云服务器。这里以最常用的阿里云为例,其他平台(腾讯云、华为云)操作逻辑差不多。

1. 阿里云服务器购买步骤(小白专属流程)

  1. 打开阿里云官网:www.aliyun.com/,点击右上角【注册/登录】,用手机号注册并完成实名认证(必须实名,否则买不了服务器);

  2. 登录后,在首页搜索框输入“云服务器ECS”,点击搜索结果里的【云服务器ECS】进入购买页;

  3. 选择购买配置(重点!按下面选,省钱又够用):

    • 【计费方式】:选【按量付费】(适合新手测试,用多少算多少,不用了随时停,避免浪费;长期用可以后续转“包年包月”);

    • 【地域】:选离你家最近的地域!比如你在上海,就选【华东2(上海)】;在广州就选【华南1(深圳)】—— 地域越近,后续连接速度越快;

    • 【实例规格】:选【突发性能实例】(t6系列),具体选【t6-c1m1.small】(1核1G内存)—— 只做FRP中转,这个配置完全够用,性价比最高;

    • 【镜像】:选【公共镜像】→ 【Ubuntu】→ 版本选【Ubuntu 22.04 64位】(Linux系统做中转稳定,资源占用少,后续配置也简单);

    • 【存储】:选【云盘】→ 【高效云盘】,容量选【20GB】(足够装FRP和系统文件,多了浪费钱);

    • 【带宽】:选【公网带宽】→ 【按使用流量】,带宽峰值选【3Mbps】(3M足够远程操控、传输小文件,速度流畅,流量用多少算多少);

    • 【安全组】:先选【默认安全组】(后续再修改,不用在这里纠结);

    • 【登录凭证】:选【自定义密码】,设置登录服务器的密码(记住这个密码!后续要用):

      • 用户名默认是【root】(Linux系统最高权限账户);

      • 密码要求:至少8位,包含大写字母、小写字母、数字、特殊符号(比如Root@123456),记在小本本上,别忘!

    • 【实例名称】:随便填,比如“FRP中转服务器”,方便后续识别;

    • 点击右下角【立即购买】,确认订单后支付(按量付费首次支付会扣少量保证金,后续按实际使用扣费)。

  4. 购买成功后,回到阿里云控制台:点击顶部导航栏【控制台】→ 左侧菜单【云服务器ECS】→ 【实例】,就能看到你买的服务器了,记住服务器的【公网IP】(后续所有配置都要用到这个IP,比如223.4.156.78)。

2. 必做!配置安全组(防火墙)—— 90%新手栽坑的地方

安全组就像服务器的“大门”,默认是关着的,必须手动打开需要的端口,否则后续FRP无法连接。操作步骤:

  1. 在阿里云ECS实例页面,找到你的服务器,点击右侧【操作】栏的【更多】→ 【网络和安全组】→ 【配置安全组】;

  2. 在弹出的窗口中,点击【配置规则】;

  3. 切换到【入方向】标签页(入方向就是允许外部设备连接服务器的规则),点击【手动添加】,依次添加以下4条规则(每条规则填完点【确定】,再添加下一条):

    • 第一条(FRP服务端监听端口):

      • 【规则方向】:入方向(默认);

      • 【授权策略】:允许(默认);

      • 【协议类型】:TCP(下拉选择);

      • 【端口范围】:7000/7000(只开放7000端口);

      • 【授权对象】:0.0.0.0/0(允许所有IP连接,新手直接填这个,简单方便);

      • 【描述】:FRP服务端端口(可选,方便后续识别)。

    • 第二条(FRP控制台端口,可选):

      • 【协议类型】:TCP;

      • 【端口范围】:7500/7500;

      • 【授权对象】:0.0.0.0/0;

      • 【描述】:FRP控制台端口。

    • 第三条(映射SSH端口,核心!):

      • 【协议类型】:TCP;

      • 【端口范围】:8081/8081(这个端口可以自己改,比如8888,但必须和后续FRP配置一致,记好这个数字);

      • 【授权对象】:0.0.0.0/0;

      • 【描述】:SSH映射端口。

    • 第四条(服务器SSH登录端口):

      • 【协议类型】:TCP;

      • 【端口范围】:22/22(Linux服务器默认SSH登录端口,必须开放,否则进不了服务器);

      • 【授权对象】:0.0.0.0/0;

      • 【描述】:SSH登录端口。

  4. 添加完成后,入方向规则列表里会显示这4条规则,确认都是“允许”状态,安全组配置就完成了。


第二阶段:搭建隧道 —— FRP配置(云端+本地,一步一步复制操作)

FRP分为两部分:frps(服务端,装在阿里云服务器上)和frpc(客户端,装在家里的Windows高性能电脑上)。我们先配置云端,再配置本地。

1. 云服务器端(frps)配置(Linux系统)

首先要登录阿里云服务器,然后下载、配置FRP服务端。

步骤1:登录阿里云服务器(Windows电脑登录方法)

  1. 打开Windows自带的【命令提示符】或【PowerShell】(按Win+R键,输入cmd或powershell,回车);

  2. 在命令行输入登录命令(复制后修改IP,再粘贴): ssh root@你的云服务器公网IP 比如你的公网IP是223.4.156.78,就输入:ssh root@223.4.156.78

  3. 第一次登录会提示“Are you sure you want to continue connecting (yes/no)?”,输入【yes】(小写),回车;

  4. 然后提示输入密码,就是你购买服务器时设置的root密码(输入时密码不显示,直接输完回车即可);

  5. 如果出现“root@xxx:~#”的提示符,说明登录成功了!

步骤2:下载并解压FRP服务端

  1. 先进入服务器的/usr/local目录(专门放软件的目录,规范且不易出错),输入命令:

    cd /usr/local
    

    回车后,提示符会变成“root@xxx:/usr/local#”。

  2. 下载FRP安装包(用最新稳定版,这里以v0.52.3为例,后续如果有新版本,可替换链接中的版本号):

    wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
    

    输入后回车,等待下载完成(如果提示“wget: command not found”,先输入apt update && apt install -y wget安装wget,再重新执行上面的下载命令)。

  3. 解压下载的压缩包,输入命令:

    tar -zxvf frp_0.52.3_linux_amd64.tar.gz
    

    回车后会生成一个文件夹“frp_0.52.3_linux_amd64”。

  4. 进入解压后的文件夹,输入命令:

    cd frp_0.52.3_linux_amd64
    

    此时进入了FRP的安装目录。

步骤3:配置frps.toml(服务端配置文件)

  1. 用Linux自带的nano编辑器打开配置文件,输入命令:

    nano frps.toml
    

    回车后进入编辑界面。

  2. 删除文件里的所有默认内容,复制下面的配置(直接复制粘贴即可):

    # frps.toml 服务端配置
    bindPort = 7000        # 服务端监听端口,必须和安全组开放的7000端口一致
    auth.token = "123456"  # 身份验证令牌,自己设个复杂的,比如abc123XYZ!@#,后续客户端要和这个一致
    dashboardPort = 7500   # 控制台端口,可选,用于查看FRP运行状态
    dashboardUser = "admin"# 控制台登录用户名
    dashboardPwd = "admin123" # 控制台登录密码
    

    说明:auth.token建议改得复杂点,避免被别人恶意连接,记好这个令牌,后续客户端要用到。

  3. 保存并退出:按键盘【Ctrl+O】(保存),回车确认;再按【Ctrl+X】(退出)。

步骤4:启动FRP服务端

  1. 在FRP安装目录下,输入启动命令:

    ./frps -c frps.toml
    

    回车后,如果出现“start frps success”的提示,说明服务端启动成功了!

  2. 验证控制台(可选):在浏览器输入“http://你的云服务器公网IP:7500”,输入配置的用户名(admin)和密码(admin123),如果能看到FRP的运行状态页面,说明服务端配置没问题。

  3. 重要提示:当前运行的FRP服务会随着命令行关闭而终止。如需实现后台持续运行(即使关闭终端也不受影响),请按以下步骤操作:

    • 首先按Ctrl+C终止当前运行的FRP进程

    • 然后执行命令:

      nohup ./frps -c frps.toml &
      
    • 最后输入【exit】退出服务器登录即可,FRP服务将继续在后台运行

2. 本地服务器端(frpc)配置(家里的Windows电脑)

家里的高性能电脑是Windows系统,需要下载FRP客户端,配置后连接阿里云的服务端。

步骤1:下载FRP客户端

  1. 打开浏览器,访问FRP的GitHub下载页:github.com/fatedier/fr…

  2. 找到最新的稳定版(比如v0.52.3),下载Windows版本的压缩包:点击“frp_0.52.3_windows_amd64.tar.gz”(注意是windows_amd64,对应64位Windows系统);

  3. 下载完成后,右键压缩包,选择【解压到当前文件夹】,得到一个文件夹“frp_0.52.3_windows_amd64”,把这个文件夹移动到桌面(方便后续操作)。

步骤2:配置frpc.toml(客户端配置文件)

  1. 打开桌面的FRP客户端文件夹,找到“frpc.toml”文件,右键选择【编辑】(用记事本打开即可);

  2. 删除文件里的所有默认内容,复制下面的配置(重点修改3处:云服务器IP、令牌、映射端口,必须和服务端一致):

# frpc.toml 客户端配置
serverAddr = "x.x.x.x" # 替换成你的阿里云服务器公网IP,比如223.4.156.78
serverPort = 7000      # 对应服务端的bindPort,必须是7000
auth.token = "123456"  # 必须和服务端的auth.token一致,比如你改的abc123XYZ!@#

[[proxies]]
name = "ssh-home"      # 代理名称,随便填,方便识别
type = "tcp"           # 协议类型,固定填tcp
localIP = "127.0.0.1"  # 本地IP,固定填127.0.0.1(代表本机)
localPort = 22         # 本地Windows的SSH端口,固定填22
remotePort = 8081      # 映射到云服务器的端口,必须和安全组开放的8081端口一致
  1. 修改完成后,按【Ctrl+S】保存,关闭记事本。

步骤3:启动FRP客户端

  1. 打开FRP客户端文件夹,在文件夹空白处,按住【Shift】键+右键,选择【在此处打开PowerShell窗口】(或“在此处打开命令窗口”);

  2. 在PowerShell中输入启动命令:

     .\frpc.exe -c frpc.toml
    

    输入后回车;

  3. 如果出现“start proxy success”的提示,说明客户端连接服务端成功,隧道已经打通了!

  4. 注意:此时PowerShell窗口不能关闭,关闭就会断开连接。如果想让客户端后台运行(关闭窗口也不影响),可以创建批处理文件,后续再讲。


第三阶段:本地基建 —— Windows OpenSSH Server安装与避坑(核心!必须做好)

隧道打通后,还需要让家里的Windows电脑开启“SSH服务”—— 相当于给电脑开个“远程大门”,轻薄本才能通过隧道进来。这是最容易报错的环节,按下面的步骤来,避开所有坑。

1. 安装OpenSSH Server(Windows自带,不用装第三方软件)

Windows 10/11都自带OpenSSH Server,直接通过系统设置安装,步骤:

  1. 方法一:通过设置安装(简单直观)

    • 按【Win+I】键打开【设置】;

    • 点击【应用】→ 【可选功能】;

    • 点击页面顶部的【添加功能】;

    • 在搜索框输入“OpenSSH Server”,找到后点击选中,然后点击【安装】;

    • 等待安装完成(1-2分钟),安装成功后,会显示在“已安装的功能”列表里。

  2. 方法二:通过PowerShell安装(更快捷,推荐)

    • 以管理员身份打开PowerShell:按【Win+X】,选择【Windows PowerShell (管理员)】(Windows 11是【终端(管理员)】);

    • 输入安装命令:

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

      回车后等待安装,出现“状态:成功”说明安装完成。

2. 避坑一:修改SSH配置文件(否则管理员登录不了)

默认配置对管理员不友好,必须修改,否则用root权限账户登录会报错。步骤:

  1. 打开文件资源管理器,在地址栏输入“C:\ProgramData\ssh”,回车(注意:ProgramData是隐藏文件夹,需要先开启“显示隐藏项目”—— 点击顶部【查看】,勾选【隐藏的项目】);

  2. 找到“sshd_config”文件,右键选择【编辑】(用记事本打开);

  3. 找到以下配置项,修改并保存:

    • 找到“PasswordAuthentication no”,把“no”改成“yes”(允许用密码登录,新手必改,否则需要配置密钥,很复杂);

    • 找到文件最后两行:

      # Match Group administrators
      # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
      

    在这两行前面加上【#】注释掉(已经有#就不用改),这一步非常重要!否则管理员组用户无法用密码登录。

  4. 保存修改:按【Ctrl+S】,关闭记事本。

3. 避坑二:权限问题导致“Connection closed”(连接被拒绝)

OpenSSH对密钥文件的权限要求极其严格,不小心修改了权限,就会拒绝连接。不用手动改权限,直接让系统重新生成密钥文件,一步解决:

  1. 以管理员身份打开PowerShell;

  2. 依次输入以下3条命令(每条命令输完回车):

     # 停止SSH服务
    Stop-Service sshd# 删除所有旧的密钥文件
    
    Remove-Item C:\ProgramData\ssh\ssh_host*key
    
    #重新启动SSH服务,系统会自动生成权限正确的新密钥
    Start-Service sshd
    
  3. 执行完成后,SSH的权限问题就解决了。

4. 避坑三:端口22被占用(服务启动了也连不上)

如果之前调试过SSH,可能导致22端口被卡死,需要找到占用进程并杀死:

  1. 以管理员身份打开PowerShell;

  2. 输入命令,查找占用22端口的进程ID(PID):

     netstat -ano | findstr :22
    

    回车后,会显示类似“TCP 0.0.0.0:22 0.0.0.0:0 LISTENING 1234”的内容,其中1234就是PID;

  3. 输入命令,强制杀死该进程(把1234换成查到的PID):

    taskkill /F /PID 1234
    

    回车后提示“成功: 已终止PID为1234的进程”,就完成了;

  4. 重新启动SSH服务:

    Start-Service sshd
    

5. 配置Windows远程登录账户(避免后续登录失败)

建议创建一个专门用于远程登录的管理员账户,设置密码永不过期,避免过段时间密码过期无法登录。

  1. 以管理员身份打开PowerShell;

  2. 创建新账户(比如账户名win_admin),输入命令:

    New-LocalUser -Name "win_admin" -FullName "远程登录账户" -Description "用于远程访问家里的AI服务器"
    

    回车后,会提示输入密码,设置一个复杂密码(比如Win@123456),输入两次确认;

  3. 把新账户添加到管理员组(获得最高权限):

    Add-LocalGroupMember -Group "Administrators" -Member "win_admin"
    
  4. 设置密码永不过期:

    Set-LocalUser -Name "win_admin" -PasswordNeverExpires $true
    
  5. 记住这个账户名(win_admin)和密码,后续用这个账户远程登录。


第四阶段:最终连接 —— 用笔记本远程访问家里的AI服务器

前面的配置都做好后,现在用你的轻薄本(Windows/Mac都可以),就能随时随地连接家里的电脑了。

1. 基本连接步骤(Windows轻薄本)

  1. 确保家里的高性能电脑:① 已启动FRP客户端(显示start proxy success);② SSH服务已启动;

  2. 打开轻薄本的【PowerShell】或【命令提示符】;

  3. 输入连接命令,格式:

    ssh 用户名@云服务器公网IP -p 映射端口
    
  4. 替换成你的信息,比如:ssh win_admin@223.4.156.78 -p 8081 说明:win_admin是家里电脑的远程账户名,223.4.156.78是阿里云公网IP,8081是映射端口(和安全组、FRP配置一致);

  5. 第一次登录会提示“Are you sure you want to continue connecting (yes/no)?”,输入【yes】回车;

  6. 输入家里电脑远程账户的密码(比如Win@123456),回车;

  7. 如果出现“win_admin@DESKTOP-XXXXXX C:\Users\win_admin>”的提示符,说明连接成功了!现在你就能在轻薄本上操控家里的高性能电脑了。

2. 避坑:PowerShell语法错误(用户名带空格、@符号报错)

如果你的Windows账户名带有空格(比如“AI Server”),直接输入命令会报错,用下面两种正确姿势:

  1. 正确姿势A(推荐):用-l参数指定用户名

    ssh -l "AI Server" -p 8081 223.4.156.78
    

    说明:-l后面跟带空格的用户名,用双引号括起来,再指定端口和IP;

  2. 正确姿势B:把用户名和IP一起用双引号括起来

    ssh "AI Server@223.4.156.78" -p 8081
    

3. Mac轻薄本连接方法(补充)

  1. 打开Mac的【终端】(在启动台的“其他”文件夹里);

  2. 输入和Windows一样的连接命令:

    ssh win_admin@223.4.156.78 -p 8081
    
  3. 后续步骤和Windows一样,输入yes和密码,即可连接成功。


总结:完整链路+注意事项

完整链路梳理(小白能懂的逻辑)

你的轻薄本 → 连接阿里云服务器的8081端口(通过FRP服务端) → 穿过FRP搭建的隧道 → 连接家里Windows电脑的22端口(SSH服务) → 成功操控家里的AI服务器。

必记注意事项(避免后续出问题)

  1. 家里的电脑必须保持开机状态,FRP客户端必须启动(关闭窗口会断开,建议设置开机自启);

  2. 阿里云服务器的FRP服务端要保持后台运行(用nohup命令启动的话,关闭登录窗口也不影响);

  3. 记住三个核心信息:阿里云公网IP、FRP映射端口(8081)、家里电脑的远程账户名和密码;

  4. 如果连接失败,先检查三点:① 阿里云安全组端口是否开放;② FRP服务端和客户端是否都启动成功;③ SSH服务是否正常运行。

按照上面的步骤操作,避开所有坑,你就能拥有一台随时待命的私人算力平台,出门在外也能轻松操控家里的AI服务器啦!