内网穿透技术远程连接windows电脑

部署运行你感兴趣的模型镜像

内容目录

这是一个内网穿透技术的实践笔记,包含如下内容。

  1. 为什么我要倒腾这个东西,要解决我的什么问题?
  2. 什么是内网穿透?
  3. 具体步骤教程

本教程并不是从小白开始教起,虽然直接照着我的步骤做一遍也可以复现(前提是有一个有公网IP的云服务器),但是你需要基础计算机网络的知识,你才能彻底理解你在干啥。

1. 为什么我需要内网穿透

本人有一台有显卡的windows电脑,一台没有显卡的windows笔记本,以及一个有公网IP的云服务器。

由于AI学习过程中的需要经常调用显卡算力资源,但是每天从外面跑回家里或者宿舍跑模型实在是太不方便了,所以我就开始思考:又没有什么方法能让我用我的小笔记本远程连接我的显卡机,远程给他下发命令任务呢?

于是我就开始思考和实践解决方法,一开始尝试了Zerotier,在几个设备之间组了虚拟局域网,但是说实话我没搞懂这玩意到底怎么工作的,而且有时候总是断联,之后就弃用了。然后又尝试了一些桌面远联软件,发现他们都是直接把整个桌面的画面传过来给你操控,但是其实我只是想调用终端以及ssh连接,所以有点浪费网络的感情,不过最蛋疼的还是不够稳定,这几个软件在服务器上有时候总会莫名其妙停摆,它摆几次之后我也开摆,就没怎么管了。

就这样持续了一段时间,显卡机正式没怎么干,CSGO的画面倒是处理了很多。现在转眼到了暑假,终于有时间可以倒腾一下了,然后我再次探索解决方案,发现了一个神奇的,我刚好能做的方案,也就是 内网穿透

2. 什么是内网穿透?

正常情况下,只有一个局域网内的服务器可以相互访问,如果不是一个局域网内,就互联不上了。这是因为不是每个电脑都有公网IP(不多说了,上过计算机网络的都知道)。

简单理解,就是不在一个wifi下就没办法ssh连接。

而有公网IP的服务器,每个电脑,无论你有没有公网IP,都是可以访问和接受来自它的信息的。因此,它就可以充当一个 中转服务器, 把两台原本无法不能互相连接的主机连接起来,让后这两主机就可以互相通信了。
在这里插入图片描述
原理就是这么简单,现在直接进入实操流程。

3. 具体步骤

3.1 买一个有公网IP的服务器

这里不多说,网上有很多资源。

3.2 给显卡机安装openssh服务

首先windows+I, 搜索框搜索可选功能之后点进去:
在这里插入图片描述
在添加可选功能里面搜索openssh服务器,然后安装
在这里插入图片描述

3.3 给云服务器配置frps服务

  1. 在这个官方frp页面下载安装包,传到服务器上

根据你的云服务器系统选择安装包,一般选linux_amd64那个

  1. 下载之后是个压缩包,解压到/root目录下
tar -zxvf frp_0.63.0_linux_amd64.tar.gz

在这里插入图片描述

  1. 进入文件夹,编辑配置frps.toml文件
    • 绑定一个frps的端口
    • 设置一个安全token,之后frpc要用
# frps.toml 配置示例
bindPort = 7000 # frp 服务端与客户端通信的端口,重要!

auth.token = "" # 这里设置一个安全token
  1. 设置为系统服务,使其可以方便地启动,停止,配置后台运行和开机自启动
# 1. 先安装systemd
apt install systemd

# 2. 创建frps.service文件
sudo vim /etc/systemd/system/frps.service

在文件中写入如下内容:

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml

[Install]
WantedBy = multi-user.target

然后你就可以使用systemd管理frps服务了(这里只是命令示例,别执行)

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps

我们先不管这些,执行frps开启自启动服务,然后启动并看下它的状态如何:

sudo systemctl start frps
sudo systemctl status frps

出现类似的界面就是成功了。
在这里插入图片描述

3.4 给显卡机安装frpc服务

  1. 安装frpc客户端
    还是在这个官方frp页面下载安装包,然后随便找个地方解压。

这里选择windows的安装包就行

  1. 配置frpc.toml文件
    解压好之后直接编辑frpc.toml文件,配置示例如下:
serverAddr = "" # 你云服务器的公网IP
serverPort = 7000
auth.token = "" # 安全连接token,和服务器端的一致

[[proxies]]
name = "windows-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
  1. 试着启动一下
.\frpc.exe -c frpc.toml

在这里插入图片描述
出现这个界面就是成功

  1. 设置为开机自启动

同样的,设置为开机自启动,因为懒得每次开电脑在开一遍

首先安装一个nssm,它可以很方便的把简单命令打包成系统服务。

scoop install nssm

接下来创建一个名字叫frpc的系统服务

nssm install frpc

然后会弹出来一个弹窗,你需要把几个选项填一下:
在这里插入图片描述

  • Path (路径): 点击 … 按钮,选择你的 frpc.exe 文件的完整路径。
    例如:C:\frp\frpc.exe

  • Startup directory (启动目录): 填写 frpc.exe 所在的目录。
    例如:C:\frp

  • Arguments (参数): 填写 frpc 启动所需的参数 -
    例如:c frpc.toml

  1. 设置为开启自启,启动服务
Set-Service -Name frpc -StartupType Automatic
net start frpc # 启动服务
Get-Service -Name frpc # 看看服务启动没

在这里插入图片描述
这样就是成功启动了。

4. 远程连接

  1. 看看你是谁
    要ssh连接,首先要知道显卡机上我的用户名是什么,打开cmd,输入whoami,你就知道你在显卡机上的用户名了。

  2. 远程连接

ssh -o Port=6000 显卡机用户名@云服务器IP

在这里插入图片描述
然后我就成功的登录进去了。这下终于可以愉快的远程给他分配深度学习任务,不用每次都跑回来本地跑了。

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值