V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Contextualist
V2EX  ›  分享创造

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

  •  
  •   Contextualist ·
    Contextualist · 2023-09-25 08:09:34 +08:00 · 2771 次点击
    这是一个创建于 410 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 简洁的交互带来了下列提升:

    • 可以发送文件夹
    • 发送端无需写出接收设备的名字
    • macOS 和 Windows 端可接收文件至任意文件夹,而不只是下载文件夹

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

    • NAT 打洞成功率大大提升
    • 可以使用其中继节点,确保任何情况下都能建立连接

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

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

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

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

    3 条回复    2023-09-26 09:10:29 +08:00
    molezznet
        1
    molezznet  
       2023-09-25 09:32:42 +08:00
    至少一端 NAT1 或 2 容易打洞些. 看下来京东云,netgear ,华硕,openwrt ,和爱快有 NAT1 选项
    Contextualist
        2
    Contextualist  
    OP
       2023-09-25 14:03:42 +08:00
    @molezznet 如果有可以自己配置的 NAT 确实是最好的情况。acp 的打洞也有 UPnP 等端口映射方法的支持,让路由器的 NAT 能配合打开端口。不过现实的情况是有时会有两层或以上的 NAT ,而且多是像电信运营商那种用户无法配置的 NAT ,就比较麻烦了
    molezznet
        3
    molezznet  
       2023-09-26 09:10:29 +08:00
    @Contextualist 是的,公司是电信 Symmetric NAT4 , 没有权限, 测试下来只要家里移动至少有个 NAT2 就可以通,从 tailscale 的 hkg 中转 70ms 一下到 8-10ms
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1683 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.