• 内网穿透:针对小白的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
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    [common]
    bind_port = 7000
    
    • 1
    • 2

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

    $ ./frps -c ./frps.ini
    
    • 1

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

    $ nohup ./frps -c ./frps.ini &
    
    • 1
    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	# 你在外部访问的接口
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

    $ ./frpc -c ./frpc.ini
    
    • 1

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

    $ nohup ./frpc -c ./frpc.ini &
    
    
    • 1
    • 2
    1. 验证一下:

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

    tail -f nohup.out
    
    • 1

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

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

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

  • 相关阅读:
    【信息系统项目管理师】 学习笔记 第1章 信息化发展
    pip install uwsgi
    pytorch(b站小土堆学习笔记P1-P15)
    代码随想录算法训练营第55天 | 392.判断子序列 115.不同的子序列
    ArcGIS Pro SDK (十二)布局 2 布局图形元素
    C++ 学习 之 成员指针
    OTA: Optimal Transport Assignment for Object Detection 原理与代码解读
    “传统技术”快速搭建AI产品的利器——LLM技术
    进阶 P7P8 岗敲门金砖:京东 T5 级架构师出品高并发核心编程手册,涨薪 10k 的秘诀
    企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
  • 原文地址:https://blog.csdn.net/weixin_43253464/article/details/128105558