给 Tailscale Taildrop 一个更好的命令行交互体验

2023-09-25 08:09:34 +08:00
 Contextualist

Taildrop

Tailscale 是个软组网工具,可以在广域网的设备间建立加密连接,并映射为虚拟网络设备,让它们仿佛处在同一局域网下。而 Taildrop 则是 Tailscale 提供的文件传输服务,在安装了 Tailscale 的设备间收发文件。

acp

acp 是我的个人项目,致力于提供一种简单的方式,让自己的设备间通过命令行点对点传输文件。使用体验上尽量贴近 cp ,发送端指定文件,接收端不需要指定任何信息(不需要别名、IP 地址、路径、一次性码)。并且启动无分先后,两边都就绪后即开始协商建立连接传输。

# 发送端
acp path/to/files

# 接收端,至 $(pwd)
acp
# 或接收到/接收为 path/to/target
acp -d path/to/target

为了让任意两个设备能协商建立点对点连接,我手搓了个打洞 NAT 穿越。我这简陋的实现能覆盖很多情况,但是 NAT 穿越是个很复杂的问题,所以还是会有打洞失败的情况。

Taildrop × acp

直到我用上了 Tailscale ,被他们专业的打洞技巧所折服,又发现了他们整的 Taildrop 。Taildrop 传输效果不错,但是在命令行里使用起来比较繁琐且限制较多。

于是乎,我萌生了”acp 交互 × Tailscale 底层”的想法。

acp v0.3.0 在维持简洁统一的交互下,底层连接可自动选用 Tailscale 。(acp 的老用户们,你们要是不喜欢 Tailscale 也没关系,因为从老版本升级上来的 acp 是默认不启用 Tailscale 集成的)

相较于 Taildrop ,acp 简洁的交互带来了下列提升:

相较于上一版 acp ,Tailscale 强大的组网能力带来了下列提升:

那么,在哪里可以买到呢?

项目地址:github.com/Contextualist/acp

新用户安装 acp 前若已经安装了 Tailscale ,会自动启用 Tailscale 支持。或者在安装 Tailscale 后,在 acp 配置文件中加上 strategy:["tailscale","tcp-punch"] 优先启用 Tailscale 支持,或 strategy:["tcp-punch","tailscale"] 将 Tailscale 作为备选。

让命令行个人文件传输像 cp 一样简单

2831 次点击
所在节点    分享创造
3 条回复
molezznet
2023-09-25 09:32:42 +08:00
至少一端 NAT1 或 2 容易打洞些. 看下来京东云,netgear ,华硕,openwrt ,和爱快有 NAT1 选项
Contextualist
2023-09-25 14:03:42 +08:00
@molezznet 如果有可以自己配置的 NAT 确实是最好的情况。acp 的打洞也有 UPnP 等端口映射方法的支持,让路由器的 NAT 能配合打开端口。不过现实的情况是有时会有两层或以上的 NAT ,而且多是像电信运营商那种用户无法配置的 NAT ,就比较麻烦了
molezznet
2023-09-26 09:10:29 +08:00
@Contextualist 是的,公司是电信 Symmetric NAT4 , 没有权限, 测试下来只要家里移动至少有个 NAT2 就可以通,从 tailscale 的 hkg 中转 70ms 一下到 8-10ms

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/976791

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX