一根网线,两台电脑直接传文件

Transfer files over an Ethernet patch cable

只需一根普通的 Ethernet 网线,无需路由器或云端中转,就能在两台电脑间实现高达 900 Mbits/second 的文件传输。通过简单的 IP 配置,利用 Linux 下的 socat 和 dd 命令,即可绕过 WiFi 的不稳定和 USB 接口的速度瓶颈。相比云存储的二次传输耗时和 USB 线缆的接触问题,这种点对点的 Ethernet 连接不仅成本低廉,还能抵抗 RFI 干扰,是传输大文件最可靠且高效的方式。

Ethernet 是唯一一种能通过廉价线缆,在两台随机设备间可靠达到千兆速度的常见连接方式。
  1. rmunn

    以前这活儿非得用交叉网线不可;在 https://en.wikipedia.org/wiki/Medium-dependent_interface#Aut... 普及之前,我确实就是这么干的(用的就是交叉线)。如果用直通线,你会把一台适配器的发送(TX)引脚连到另一台的 TX 引脚,接收(RX)引脚连到 RX 引脚——结果两台设备都“听”不到对方发的消息。交叉线就是把这几根线对调一下,让每台设备的 TX 引脚连到另一端的 RX 引脚,这样双方就能互相“听”到了。

    但有了自动 MDI-X 功能,每台设备都会察觉到“嘿,我在发但没收到任何东西”,然后尝试把发送和接收功能对调(在 RX 引脚上发,在 TX 引脚上收)。因为每台设备在这么做之前都会随机等待一段时间,所以它们在同一瞬间同时翻转的概率极低(几乎不可能)。就算真撞上了,第二个等待间隔也大概率不一样。

    上面的解释稍微简化了一点,但大体思路就是这样。这也是我那堆贴得清清楚楚标签的交叉线开始吃灰的原因。(后来我反应过来“嘿等等,我现在可以直接把它们当普通网线用了”,于是把它们从储物箱里翻出来,混进了我的普通跳线堆里)。

  2. steve1977

    人们发现网线可以用来联网,然后管这叫“技巧”(我甚至有点惊讶它没被叫成“黑客手段”)。

  3. yjftsjthsd-h

    我有 95% 的把握你其实不需要分配 IP。试试这个:

    # ping 接口上的所有链路本地设备:

    ping ff02::1%eth0

    然后对唯一有响应的 IP 执行你的 socat/rsync/whatever 操作。

  4. yitchelle

    这让我想起了 8 位机时代的美好时光,那时我们用交叉 RS232 线在两台电脑之间传文件。哪怕只有 30bps,也比把数据写到一台电脑的磁带里,再拿到另一台电脑上读要可靠得多。

  5. sgt

    在 macOS 上甚至更简单。

    类似下面这样的命令应该就能用:

    ifconfig enX inet6 fd42:dead:beef::1 prefixlen 48

    没必要特意把它启动起来,因为它应该已经是 up 状态了。enX 应该是你的 USB/Thunderbolt 以太网适配器,比如 en6。

    然后你就可以用 socat 把文件传到另一台机器上,哪怕那台是 Linux 机。我习惯用 nc,但 socat 肯定更快。

    有人可能会问为什么用 deadbeef 这个网段?因为这是私有地址空间,不会和公网地址冲突。

    话虽如此,在 99% 的大文件传输场景下,我直接 AirDrop 就完事了!

  6. 3r7j6qzi9jvnve

    tbstream 看起来挺好玩,但对普通用户来说太难用了——不确定它以后会不会变简单,但我估计我记不住为了传个文件就去折腾 configfs:

    https://git.kernel.org/pub/scm/linux/kernel/git/westeri/thun...

  7. SillyUsername

    你还可以在传输过程中通过 zstd 进行实时压缩,对于压缩效果好的数据,你通常会看到 1.5 到 3 倍的原始吞吐量提升,所以千兆链路实际上能跑出 165–330MB/s 的速度。

    接收端:

    socat -u TCP6-LISTEN:1234,reuseaddr STDOUT | zstd -d -c | tar -xpf - -C /destination

    发送端:

    tar -C /source -cf - directory | zstd -T0 -6 -c | socat -u STDIN 'TCP6:[fd42:dead:beef::2]:1234'

    -T0 会用满所有核心。把压缩等级调高过 -6 可以获得更高压缩率,调低则速度更快;但如果你的 CPU 跟不上,高等级反而会拖慢速度。已经压缩过的数据收益不大。

  8. awruko

    我确实有一次不得不把网线改成交叉线。那是某种演示,交叉线找不到了。当地的电脑店也没货,时间紧迫……我就用口袋刀把线给改了一下。那是 2000 年以前的事,速度限制在 10/100 Mbit——ifconfig 没报任何错误,演示进行得很顺利。

同日更多故事

2026-08-31