本文详细记录了从Windows和Linux配置SSH服务器,到使用SakuraFrp实现内网穿透的全过程。

你是否遇到过这些场景:实验室的深度学习服务器只能在局域网访问,回家了想跑个训练都不行;工控机部署在无人值守的野外,出了问题非要去现场才能登录排查。

今天这篇教程,就用最接地气的方式,带你一步步搭建一条安全的远程SSH隧道,让你在任何有网络的地方,都能像操作本地电脑一样,访问你的远程设备。


Windows端:让电脑变身SSH服务器

首先在需要被远程访问的Windows电脑上操作。以下所有命令都在管理员权限的PowerShell中运行。

1. 检查当前系统是否已安装SSH

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

这个地方应当显示为<font style="color:#DF2A3F;">Installed</font>

2. 安装SSH服务器(如未安装)

如果你没有安装,我们可以使用以下指令进行安装

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

3. 启动服务并设置开机自启

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

4. 验证服务是否运行

Get-Service sshd

在这里插入图片描述

看到 Running 字样,说明你的Windows电脑已经是一台合格的SSH服务器了。


Linux端(Ubuntu):同样操作,更简单

如果你用的是Ubuntu系统,配置过程更加简洁。

以下command均在终端中运行

启动终端:Ctrl + Shift + T

1. 安装SSH服务

sudo apt update
sudo apt install openssh-server -y

在这里插入图片描述在这里插入图片描述

我已经下载过了,所以这里就没有下载的过程了。

如果下载遇到问题,请翻到文章末尾

2. 启动并设置开机自启

sudo systemctl start ssh
sudo systemctl enable ssh

在这里插入图片描述

3. 验证服务状态

sudo systemctl status ssh

在这里插入图片描述

active (running) 表示服务正在运行,enabled 表示开机自启已生效。至此,Linux端的配置也完成了。


关键一步:用SakuraFrp打穿内网

现在SSH服务在局域网内已经可以访问,但要从公网连接,还需要一条隧道。这里我们使用SakuraFrp的免费服务。

第一步:启动隧道

在你的内网设备上打开SakuraFrp客户端,确保隧道状态为“在线”。

目前是没有启动的,我们需要启动它。

这一步是后续所有操作的大前提,必须保持客户端在线。

第二步:获取连接信息

在SakuraFrp客户端或官网后台,查看你创建的隧道详情,会看到分配的隧道域名端口号。这两个信息是连接的关键。

控制台地址:SakuraFrp 4.0

第三步:从公网发起连接

在任意一台外网电脑的终端里输入以下命令:

ssh <你的用户名>@<你的隧道域名> -p <你的隧道端口>

一个具体示例:

# 示例:用户 nvidia,通过隧道 frp-example.com:12345 连接
ssh nvidia@frp-example.com -p 12345

但是这里操作有点迷惑,新手容易迷茫,所以我用VS Code 演示一下如何通过SSH远程连接主机进行编程。

  1. 点击VS Code 左下角 (没有的可以在扩展里面下载Remote - SSH
    在这里插入图片描述

  2. 选择Connect to Host (选项的末尾要有SSH)

  3. 输入神秘命令
    在这里插入图片描述

  4. 输入主机密码
    a. (被控端的密码)
    b. 在这里插入图片描述

  5. 等待加载,第一次连接需要时间

  6. 打开一个文件夹,开始使用

重要注意事项

  • 访问密码验证:如果你的隧道设置了访问密码,首次连接时需要在浏览器访问 https://<你的隧道域名>:<你的隧道端口>,输入密码验证后才能继续。

  • 端口可能变化:免费隧道的端口号在重启客户端后可能会动态变化,如果突然连不上,先去后台检查一下最新端口。
  • 本地服务是根基:确保内网设备的SSH服务(默认端口22)始终保持运行,隧道只是转发,源服务必须是好的。

遇坑不慌:常见故障速查

现象 可能原因 解决办法
Connection refused SSH 服务未运行 在目标电脑上执行 Start-Service sshdsudo systemctl start ssh
Permission denied 用户名或密码输入错误 仔细检查登录凭据,注意大小写
Connection timed out 隧道未启动或端口号错误 检查SakuraFrp客户端是否在线,核对最新的端口号
浏览器验证失败 访问密码输入错误 重新打开隧道地址,输入正确的访问密码
在这里插入图片描述 进程占用 sudo kill -9 3480

在这里插入图片描述


总结:整个过程可以概括为三步:在目标电脑上开启SSH服务、用SakuraFrp建立隧道、最后从外网通过隧道地址和端口发起连接。

希望这篇教程能帮你彻底摆脱局域网的束缚,让远程工作更自由。如果你在配置中遇到其他问题,欢迎在评论区留言交流。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐