内网穿透:针对小白的VSCode+云服务器+本地Ubuntu搭建GPU云服务器

前言

自己实验室的情况:

  1. 实验室拥有自己的GPU集群、工作站
  2. 使用仅限于线下或者远程向日葵(不稳定、速度慢)
  3. 拥有自己的廉价cpu轻量云服务器(阿里云服务器(2G+2*cpu),大概40左右一年)

平时出差、在宿舍等需要远程操作,向日葵等一众软件实时性不满足我的要求,又慢又卡,我仅需要加载文件和源码文字内容,不需要展示图形化界面

参考了一些网上的方案,最终选择:FRP+阿里云服务器+VSCode的方案

FRP简介

在这里插入图片描述

一言以蔽之,FRP是实现内网穿透的C/S架构软件,通过连接本地服务器到云服务器端,以公网IP实现本地服务器的访问,满足在外网环境下使用内网服务的需求

流程:

服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
服务端fork新的进程监听客户端指定的端口;
外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力

方案步骤

  1. 在客户端、服务器端分配下载FRP,注意,在本地(client)和云服务器(server)上操作不一样,分别运行对应的功能

  2. 服务器端设置:

$ wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_freebsd_amd64.tar.gz
# 解压
tar -zxvf  frp_0.29.0_freebsd_amd64.tar.gz
# 进入到文件夹,修改frps.ini也就是服务器端的内容
vim ./frps.ini

打开后,自定义bind_port也就是你要将本地端与云服务器端的转发端口号:

[common]
bind_port = 7000

设置完成后,开启server的服务:

$ ./frps -c ./frps.ini

或者如下,将进程放到后台,然后回车退出

$ nohup ./frps -c ./frps.ini &
  1. 同样,对于客户端,修改的是frpc.ini文件而不是frps,要注意,其内容如下:

在这里插入图片描述

(注:这两个端口号,一定要在云服务器上的防火墙功能添加,不然会阻止访问,我用的分别是20001和20002端口)

# frpc.ini
[common]
server_addr = x.x.x.x # 你的公网ip
server_port = 7000	# 与server的bind_port设置一致,用于访问端口

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000	# 你在外部访问的接口

完成后,对客户端也运行进程:

$ ./frpc -c ./frpc.ini

或者如下,放到后台,回车退出

$ nohup ./frpc -c ./frpc.ini &

  1. 验证一下:

输出连接生成的实时log,看看是不是成功了

tail -f nohup.out

以下分别是连接成功后的命令行输出
在这里插入图片描述
在这里插入图片描述

  1. 最后,连接本地服务器,一定要注意!!
$ ssh -p 你的remote_port端口号 你本地服务器!的用户名(不是云服务器)@公网ip

然后,会提示你输入密码,密码不是你云服务器的,是本地服务器的密码!用户名也是本地服务器的用户名!这个当时没注意到。。。。

猜你喜欢

转载自blog.csdn.net/weixin_43253464/article/details/128105558