远程炼丹:zerotier内网穿透+vscode配置远程开发+tmux终端复用(代码片段)

灼灼其华R 灼灼其华R     2023-01-20     644

关键词:

  • 平时在开发深度学习等相关项目时,往往需要大型服务器或工作站的支持,远程开发时使用向日葵等远程桌面软件往往不是那么明知,多人使用冲突、限速卡顿,代码体验极其**。
  • 那么有没有更好的解决方案呢?单就小型团队而言,如果能将所有散布在各个实验室的机器使用内网穿透统一接入同一局域网,便可方便的使用ssh连接,搭配vscodessh-remote插件与tmux进行终端复用,便可实现本地无感的远程开发。

1. ZeroTier配置内网穿透

1.1 简介

ZeroTier 作为一款非常简单易用的内网穿透工具,不需要复杂配置,就能实现虚拟局域网的组建,让你可以在外也能连回实验室的NAS、服务器获取数据、远程开发。

1.2 费用

免费网络限制 100 台设备,超过了就要付费。100 台对于个人或者小团队使用来说都足够了。

1.3 支持平台

1.4 使用步骤

  • 说明:如已有Network ID,直接执行步骤3,安装客户端,加入Network ID即可
  1. 注册ZeroTier ID:

  1. 创建私有局域网,得到Network ID与子网地址:

  1. 安装客户端加入Network ID

    • windows下ipconfig,ubuntu下ifconfig出现ZeroTier的网段后说明连接成功(也可直接ping其他ip验证):


  2. 管理:

    • 可以选择子网地址:

    • 查看连接客户端,第三列机器即为所有机器的局域网IP,接下来的步骤即shh该ip地址:


2. VSCode配置Remote-SSH插件

2.1 安装OpenSSH

  • Remote-SSH插件是基于SHH的,所以首先要确保本机和远程服务器都安装好了OpenSHH

  • Ubuntu:

    ubuntu默认并没有安装ssh服务,如果通过ssh链接ubuntu,需要自己手动安装ssh-server。判断是否安装ssh服务,可以通过如下命令进行:

    ssh localhost   
    ssh: connect to host localhost port 22: Connection refused   
    

    若出现上述情况,表示还没有安装,可通过以下命令安装:

    sudo apt-get install openssh-server
    sudo /etc/init.d/ssh start
    

    安装启动后,可以通过如下命令查看服务是否正确启动:

    ps -e|grep ssh
    6212 ?        00:00:00 sshd  
    

    如上表示安装成功

  • Windows:

    Win10现在已经支持OpenSSH,可在设置->应用->可选功能中查看:

    若未安装,直接使用添加功能->搜索SSH安装即可,其他安装方式可参考Windows安装OpenSSH支持SSH - 简书 (jianshu.com)

  • Mac OS:

    Mac OS X系统已经默认安装了SSH,但是SSH服务并未启用,启用SSH服务的方法:

    系统偏好设置->共享->勾选“远程登陆”:

  • 验证ssh:

    使用:ssh <username>@<ip>连接任意主机,输入密码连接成功即可:

2.2 配置Remote-SSH插件

  • 安装Remote-SSH:

    在vscode的拓展商店中搜索Remote-SSH进行安装,安装完成后左侧会出现以下按钮:

  • 配置config文件:

    进入该拓展,点击SSH TARGETS上面的设置按钮,选择所要配置的ssh config文件(一般为第一个):

    配置远程服务器的名称、ip与用户名:

    • Host: 主机的自定义显示名,可以随便起

    • HostName: 登录远程主机的内网IP,即1.4中主机内网穿透后得到的虚拟IP

    • User: 登录远程主机的用户名

    • Port: 用于登录远程主机的端口(可选)

    • IdentityFile: 本地的id_rsa的路径(用于免密登陆的私钥)(多人使用不推荐配置私钥免密)(可选)

  • 远程连接测试:

​ 配置完成后,该窗口下会出现所配置的主机,可以在新窗口下进行连接:

(第一次连接需要选择服务器操作系统)-> 输入密码->等待服务器安装vscode远程端->打开远程项目文件夹后即可开始使用,所有的使用均和本地使用无任何差异:


3. 使用Tmux保证会话持续运行

3.1 Tmux简介

  • **目的:**避免训练过程中因为本地Terminal关闭后服务器上的进程也被关闭。

为什么需要终端复用

命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)

会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。

一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。

Tmux 终端复用的作用?

(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。

(2) 它可以让新窗口"接入"已经存在的会话。

(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

(4)它还支持窗口任意的垂直和水平拆分。

3.2 Tmux的安装

# Ubuntu 或 Debian
$ sudo apt-get install tmux

# CentOS 或 Fedora
$ sudo yum install tmux

# Mac
$ brew install tmux

3.3 Tmux使用常用命令

$ tmux new -s <窗口名> 	# 打开新窗口
ctrl+b d				  # 分离窗口
$ tmux info				  # 列出当前所有 Tmux 会话信息
$ tmux attach -t <窗口名> 	# 连接窗口

ctrl+b %	# 分割窗口
ctrl+b s 	# 切换窗口

4. 远程文件拷贝

  • 直接使用以下命令即可:

    $ scp <本地文件路径> <远程主机用户名>@<远程主机ip>:<要拷贝到的远程主机路径>
    #或
    $ scp <远程主机用户名>@<远程主机ip>:<要拷贝的远程主机文件路径> <拷贝到的本地文件路径> 
    

    例如:

    $ scp .\\labels.zip hp3090@192.168.192.164:/media/hp3090/HDD-2T/renjunjie/WSOL_RS/dataset/C45V2
    

有关nas中使用zerotier实现内网穿透的配置说明

一、背景介绍由于工作变动,很久不写博客了。新入坑nas(群晖220+),原因不阐述,经过一段时间折腾,陆续实现以下用途:1、手机照片自动备份。2、工作资料多机器自动同步。(家、单位、常驻出差地点)3、网盘本地化(... 查看详情

vscodessh远程连接服务器内网穿透公网连接(代码片段)

...f0c;能方便的进行多语言编辑,而且VScode还拥有免费的远程开发功能,这对于使用者来说真的很实用。话不多说,现在就以安装在Windows系统上的VScode,如何使用Cpolar内网穿透与VScode配合,实现在Ubuntu(Linux&#... 查看详情

ipad秒变生产力工具?在ipad上用vscode写代码搞开发内网穿透(代码片段)

...olar内网穿透(支持一键自动安装脚本)2.2创建HTTP隧道3.测试远程访问4.配置固定二级子域名4.1保留二级子域名4.2配置二级子域名5.测试使用固定二级子域名远程访问6.iPad通过软件远程vscode6.1创建TCP隧道7.ipad远程vscode8.配置固定TCP端口... 查看详情

内网穿透:远程访问内网ip中的电脑(代码片段)

...cvslab@4835ar2654.qicp.vip然后输入登录密码即可。在vscode【远程资源管理器】中,配置如下信息:配置好后,直接连接,输入密码即可连上。备注:win11用户名、密码查看方法【控制面板】-【用户账户】-【更改... 查看详情

使用局域网登录内网电脑

折腾了一晚上,总算没有白费。找到了使用zerotier(https://www.zerotier.com/)连接内网。以前都是使用teamviewer连接,但是用着速度太慢了。使用zerotier:  1  新建一个账号  https://my.zerotier.com/  2   新建一个账号登录... 查看详情

远程办公之zerotier

目录支持多系统创建网络ID加入网络ID使用 ZeroTier可在任何地点访问公司内部环境服务,可以为您居家办公提供不一样的体验。只需要在公司内部安装一个 ZeroTier-server甚至不需要安装,就可以用客户端一样的制式访问到... 查看详情

远程办公之zerotier

目录支持多系统创建网络ID加入网络ID使用 ZeroTier可在任何地点访问公司内部环境服务,可以为您居家办公提供不一样的体验。只需要在公司内部安装一个 ZeroTier-server甚至不需要安装,就可以用客户端一样的制式访问到... 查看详情

使用vnc远程连接ubuntu-内网穿透实现公网远程办公(代码片段)

...异,均自成体系,不足之处请大家指正。使用VNC远程连接Ubuntu-内网穿透实现公网远程办公本文关键字:cpolar、Ubuntu、VNC、内网穿透、远程连接文章目录使用VNC远程连接Ubuntu-内网穿透实现公网远程办公一、VNC配置1.Ubunt... 查看详情

如何使用平板连接服务器实现cpolar开发?内网穿透实例(代码片段)

...建codeserver,然后在iPadPro上通过浏览器或者APP,来远程linux服务器,使用服务器的资源来编译代码,而iPadPro前端只需要负责写代码编程就可以啦。以及在实现局域网下的远程访问后,我们还可以用cpolar做内网穿... 查看详情

远程公司内网服务器内网穿透(代码片段)

当遇到在家休假,却需要远程处于公司内网服务器的场景时,我们可以通过内网穿透将本地端口映射到公网,使用所生成的公网地址来进行远程连接。这里推荐一款可以永久免费使用,还不限制流量的内网穿透工... 查看详情

通过zerotier访问局域网所有设备

前言每次换路由器、刷机后,都要重复一遍zerotier的配置过程,今天抽时间记录下来备用。zerotier是一个虚拟局域网工具,可以用来做内网穿透,从而实现在外网方便自由地访问内网设备的目的。我家的主路由器是... 查看详情

内网穿透教程(代码片段)

...够直接通过公网的ip去访问,极大的方便用户的日常远程的一些操作的使用。比如nas的远程访问,个人博客的搭建等等。端口映射概念:见名知意,就是将端口做映射&#x 查看详情

nuc980开源项目40-plc远程下载/内网穿透(非技术)

 1.网穿介绍在淘宝上有一个产品,叫做PLC远程下载模块,随便找了一个。 它的核心功能,是让客户在外网可以控制内网的设备。关于内网穿透,有几种搞法第一种是远程控制,常见的就是淘宝上卖的DTU模块,搞成4G或者... 查看详情

远程办公之zerotier

目录支持多系统创建网络ID加入网络ID使用 ZeroTier可在任何地点访问公司内部环境服务,可以为您居家办公提供不一样的体验。只需要在公司内部安装一个 ZeroTier-server甚至不需要安装,就可以用客户端一样的制式访问到... 查看详情

通过zerotier访问局域网所有设备

前言每次换路由器、刷机后,都要重复一遍zerotier的配置过程,今天抽时间记录下来备用。zerotier是一个虚拟局域网工具,可以用来做内网穿透,从而实现在外网方便自由地访问内网设备的目的。我家的主路由器是... 查看详情

5分钟,使用内网穿透快速实现远程桌面(代码片段)

...家分享如何使用Frp实现内网穿透,控制电脑。一提到远程桌面,可能大家都会想到TeamViewer、向日葵等第三方软件但是,它们大多是商业化软件,价格昂贵;即使有提供免费版本,也是各种限制,稳定性... 查看详情

搭建我的世界java版服务器,公网远程联机内网穿透(代码片段)

...1服务器安装java环境1.2配置服务端2.测试局域网联机3.公网远程联机3.1安装cpolar内网穿透3.1.1windows系统3.1.2linux系统(支持一键自动安装脚本)3.2创建隧道映射内网端口3.3测试公网远程联机4.配置固定TCP端口地址4.1保留一个... 查看详情

内网穿透工具:好用简单且永久免费,让你随时远程访问

...局域网的服务器可以被任何地方访问到?如何在异地远程处理公司服务问题;企业员工如何在异地访问公司内网财务/管理系统,可以随时上传下载文档等;对于没有公网IP的用户来说,远程管理或在外网访问... 查看详情