インフラ・DevOps
イーサネットパッチケーブルを介したファイル転送
Transfer files over an Ethernet patch cable (maurycyz.com)
要約
この記事では、イーサネットパッチケーブルを使用して2台のコンピュータ間で直接ファイルを転送する技術について説明しています。IPアドレスの設定、socatとddコマンドを使ったTCP/IP経由での転送方法、そしてその速度がUSBフラッシュドライブやクラウドストレージよりも高速である可能性について解説しています。また、他のファイル転送方法と比較して、イーサネット接続の利点と欠点についても触れています。
全文翻訳
技術ノート: イーサネットパッチケーブルを介したファイル転送 2026-08-29 — 2026-08-30
イーサネットを接続してIP設定を行うだけで、2台のコンピュータを接続してファイルを転送することが可能です。
# 送信側...
ip address add dev eth0 fd42:dead:beef::1/48
ip link set dev eth0 up
# 受信側...
ip address add dev eth0 fd42:dead:beef::2/48
ip link set dev eth0 up
数秒後、pingが機能するはずです。
# 受信側...
/ # ping fd42:dead:beef::1
64 bytes from fd42:dead:beef::1: icmp_seq=1 ttl=64 time=0.649 ms
64 bytes from fd42:dead:beef::1: icmp_seq=2 ttl=64 time=0.376 ms
64 bytes from fd42:dead:beef::1: icmp_seq=3 ttl=64 time=0.414 ms
64 bytes from fd42:dead:beef::1: icmp_seq=4 ttl=64 time=0.340 ms
...
そしてこれも機能するはずです。
# 受信側...
socat - TCP6-LISTEN:1234 | dd status=progress > big_file.tar.gz
# 送信側...
socat - 'TCP6-CONNECT:[fd42:dead:beef::2]:1234' < big_file.tar.gz
これらのコマンドはLinuxを使用していることを前提としていますが、このトリックはどこでも機能します。
特別なパッチケーブルとイーサネットジャックがあれば、毎分6.7 GB、約900 Mbits/秒の速度を達成できるはずです。
高性能なネットワークカードはそれよりも何桁も速い速度を可能にしますが、すでにUSBフラッシュやクラウドストレージよりもはるかに高速です。
その他のオプション...
数メートル離れた2台のマシン間で10 GBを超えるファイルを転送する場合。
クラウドストレージ: サーバーにアップロードし、別のマシンからダウンロードします。
ほとんどの場合、これはインターネット接続が遅いことと、クラウドプロバイダーがトラフィックを制限していることの両方により、非常に遅くなります。
さらに悪いことに、ファイルはネットワーク上を2回転送する必要があり、時間が2倍になります。
また、適切なサーバーをすでに所有していない限り、高価になる可能性があります。
LAN over Direct TCPは優れていますが、Wi-Fiは依然として非常に遅く、ランダムなドロップアウトがあります。
これらのマルチギガビット速度の主張は、せいぜい疑わしいものであり、典型的な家庭用ネットワーク環境(壁、干渉、長距離など)では決して達成されません。
しかし、あなたの家がギガビットイーサネットで配線されているなら、これはうまく機能する可能性があります。
高価なものを購入する意思がない限り、リムーバブルストレージは非常に遅いです。
たとえそうであっても、ケーブルによって制限されることがよくあります。
USBは理論的には高速をサポートしますが、(ほぼ神話的な)完璧なケーブルと pristineなコネクタが必要です。
私はギガビット速度に実際に到達できる単一のケーブルと周辺機器のペアしか持っていませんが、それは正しいポートに正しい角度で接続した場合のみです。
また、クラウドストレージと同じ問題を抱えており、ドライブへのデータのコピーとオフのコピーが必要なため、実質的に速度が半分になります。
イーサネットとは異なり、2台のコンピュータを直接接続しても機能しません。USBはホスト/デバイスの区別を中心に構築されているためです。
UPDATE: Linuxは最近USB-C経由でのサポートを追加したようです。
USB-C(特にThunderboltまたはUSB 4)対応のLinuxデバイスを2台接続し、/dev/tbstreamXを使用できるはずです。
ただし、USB-Cを完全にサポートするコンピュータは1台しかないため、これをテストできません。
本当に、イーサネットは、安価なケーブルを使用して2台のランダムなデバイス間でギガビット速度を確実に達成できる唯一の一般的な接続です。
また、それは真に差動(トランス付き!)であり、RFIやグランドレベルシフトに対して耐性があります。
インターネット以外のアプリケーションでは過小評価されていると思いますが、ローカルネットワークすら必要ありません。
ポイントツーポイント配線で十分です。
TCP/IPスタックも必要ありません。
生のリンクレイヤーフレームは、スイッチングされたLAN上でも完全に問題ありません。
これにより、マイクロコントローラーとの間でデータを移動するための非常に簡単な方法が得られます。
関連: ethtransfer.sh: ファイルコピーのためのシンプルなシェルスクリプト