type
Post
status
Published
date
Jul 4, 2022
slug
live_share
summary
使用Vscode Live Share直接模式进行协同编程,以本地化方式降低延迟,同时提供异地连接方案(zerotier)
tags
效率
category
技术分享
icon
password
背景
之前在课堂上看老师演示的code with me,并没有如愿实现
事后独自研究了下这个新技术,发现相当有趣,可以互相协同
但是苦于code with me的服务器在墙外,如果用科学上网,难免高延迟,各种掉线
又研究了下jb家的space和fleet,发现协同编程已成趋势,但是对本地化这种理应实现的方案,都并没有很好的实现,code with me的本地化方案又有着高额费用
然后现在就想着能不能用自己的服务器中转,研究了下vscode的协同方案
默认是采用的国外云端连接,但是那样延迟颇高
仔细一查,可以自己建服务器直连,或者本地连接,而且免费,完美符合要求
效果实现
通过我先输入1,朋友看到我输入的1后输入2,我在看到2之后输入1,进行一个简单的延迟测试,效果非常好
实现技术
国内化互联方案
- 服务器连接(异地连接)
Zerotier
根服务器部署+Zerotier
客户端互联- 直连(本地连接)
采用手机热点,交换机等,使得互相能ping通即可
校园网有AP隔离,无法互相ping通
Vscode连接环境配置
官网文档链接
插件部署
下载Live Share三个插件,并安装
将Live share连接模式修改为直接连接
文件→首选项→设置→搜索
liveshare.connectionMode
修改为
direct
直接模式根据官方文档,三个模式的工作原理分别为
模型 | 主机行为 | 来宾行为 |
Auto | 主机的协作会话接受安全的、经过身份验证的直接连接或云中继连接。 | 尝试使用直接连接,如果失败则回退到通过云中继。 |
直接 | 主机的协作会话仅接受经过身份验证的安全直接连接。 | 尝试使用直接连接,如果无法连接,则停止。 |
中继 | 主机的协作会话不允许直接连接。 主机的计算机上未打开任何端口。 | 始终通过云连接。 |
连接模式的要求
所使用的连接模式将规定 Live Share 运行所需的特定端口和 URL。
模型 | 客户端访问要求 | 故障排除 |
直接 | 主机:需要打开 5990 - 5999 范围内的端口以接受入站本地网络连接。来宾:对同一端口上的主机的网络路由和出站访问。 |
所以需要打开防火墙的5990-5999端口
防火墙配置
- 简单办法
直接把防火墙关了,万事无忧
下方为教程
- 安全办法
通过高级设置,控制防火墙出入站规则
- 入站规则→新建规则→
把5990-5999端口打开
- 入站规则→往下拉找到
文件和打印机共享(回显请求 - ICMPv4-In)
将这项3个值改为启用,方便之后用ping进行连通性测试
至此,连接环境配置完毕了
本地互联环境(与服务器二选一)
用热点/交换机连上后
拿到互相的ip地址,用命令行ping一下,如果能连通即可,如下图ip为相互主机的ip
指令格式:
ping xxx.xxx.xxx.xxx
服务器互联环境(与本地二选一)
参考链接
环境需求
具有公网ip的服务器
服务器配置过程
- 安装docker(过程持续一段时间) 理论上说你不需要知道他是个啥
curl -sSL https://get.daocloud.io/docker | sh
- 从gitee仓库下载docker配置文件
git clone https://gitee.com/Jonnyan404/zerotier-planet
- 进入下载的项目文件夹
cd zerotier-planet
- docker启动zerotier-planet
sudo docker-compose up -d
- 访问 http://ip:4000 访问web界面了
(记得防火墙开放4000端口,云服务器的去云服务器开放端口)
默认用户名:admin 默认密码:mrdoc.fun
- 在输入完默认账号密码后,会让你修改一次用户名和密码,修改为自己的
- 点击
Add network
配置你的网络名称
- 创建后点击Easy setup [也就是在网络名称下方的第二个按钮] 进入配置界面
- 配置虚拟ip段,供之后分配ip,点击
submit
提交,如果不知道怎么配置,按下面的即可
客户端配置
- 下载客户端,选择对应的平台下载
- 安装后,打开,默认在后台通过右键修改配置连接网络
- 通过join new network加入网络
- 输入之前服务器端配置好的网络中的ID,即可加入连接,加入过程中,会自动创建一个新的网络,系统会进行提示,务必准许
- 加入连接后,需要在服务器web界面,将对应用户Authorized打钩,准许用户加入,过一段时间后将会分配IP地址,通过这个IP就可以互相ping通了,记得用命令行命令进行测试
插件使用方法
插件分为分享(share)端和加入(join)端
使用连接前,一定要保证互相能ping通,不然无法互联
插件界面
分享端直接点击share即可创建房间
加入端点击Join,通过share端的URL加入房间
分享端
点击share后,会进入新建房间,点击share server,出现上方弹窗,填写入5990-5999端口之一,进行端口开放,供他人连接,回车两次后即可创建成功
点击invite participants进行邀请他人,出现下方弹窗后,URL会被自动复制入你的剪切板,这时候将URL粘贴给他人即可
该URL临时使用微软的连接平台进行连接,不会对后续直连产生影响
加入端
加入端拿到URL后,点击Join,将URL复制到上方弹窗,回车即可加入
之后不出意外就可以互相协同编程了
- 作者:txuw
- 链接:https://txuw.top/article/live_share
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章