Android と Linux の間でファイルを転送する方法
pdb コマンドラインツールで Android スマホと Linux PC をペアリング。Wi-Fi 経由で双方向にファイルを送れ、通信はエンドツーエンドで暗号化されます。
Linux 版の Personal Device Bridge は pdb というコマンドラインツールです。PC で pdb serve --pair を実行し、Android アプリでコードを読み取れば、スマホからは ファイル で、ターミナルからは pdb send で、双方向にファイルを送れます。Linux にはデスクトップ画面はありませんが、転送は Windows と同じく暗号化され、途中から再開できます。
ポイント
- 64 ビット(x86_64)Linux でコマンドラインツールとして動作します。
- 受信したファイルは
~/Downloads/Personal Bridge、または--download-dirで指定した場所に保存されます。 pdb send <device> <files or folders>でファイルもフォルダーごとも送れます。pdb doctorがエージェント、ファイアウォール、ポート、mDNS をチェックし、問題ごとに対処法を表示します。
手順
両方にインストールする
このサイトから Linux 用コマンドラインツールをダウンロードし、
pdb --helpが動くことを確認します。スマホには Android APK をインストールします。ファイアウォールのポートを開く
ufw の場合は
sudo ufw allow 47820:47821/udp、sudo ufw allow 47822/tcp、sudo ufw allow 5353/udpを実行します。firewalld の場合は ファイアウォールでアプリを許可する をご覧ください。PC でペアリングを開始する
pdb serve --pairを実行します。実行したままファイルを受信し、ペアリング用の QR コードとリンクを表示します。スマホからペアリングする
スマホで QR コードをスキャン をタップして読み取るか、リンクをスマホに送って リンクを貼り付ける を使います。両側の 6 桁のコードが一致した場合だけ承認してください。
どちらの方向にも送る
スマホでは ファイル をタップして Linux PC を選びます。ターミナルでは
pdb send <device> <file>を実行します。使える端末名はpdb devicesで一覧表示できます。
PC を受信できる状態にしておく
PC が受信できるのは、バックグラウンドのエージェントが動いている間だけです。pdb agent install を実行すると、管理者権限なしで、自分のユーザーのサインイン時に自動起動します。動作中かどうかは pdb agent status で確認できます。
Linux 版でできること
- Linux でサポートしているのは
pdbコマンドラインツールなので、このページの操作はすべてpdbコマンドで行います。コマンドの一覧はpdb --helpで確認できます。 - ファイル以外にも、
pdb clip <device>でクリップボードのテキストを、pdb url <device> <address>でリンクを送れます。 - 受信したファイルは
~/Downloads/Personal Bridgeに保存されます。別のフォルダーにするには--download-dirを付けます。
よくある質問
Linux 用のデスクトップアプリはありますか?
いいえ。Linux 版の Personal Device Bridge は pdb コマンドラインツールです。GUI のデスクトップアプリは Windows 用です。
同じ Wi-Fi にいるのにペアリングできません。どうすれば?
pdb doctor を実行してください。ファイアウォール、ポート、mDNS をチェックして対処法を提案します。ゲスト Wi-Fi では端末同士が分離されていることがよくあります。Wi-Fi のクライアント分離に対処する(ゲスト・公衆 Wi-Fi) をご覧ください。
Linux PC と Windows PC の間でも使えますか?
はい。PC 同士はリンクでペアリングします。一方で pdb serve --pair を実行し、もう一方でそのリンクを使って pdb pair "pdb://pair?d=…" を実行します。または Windows アプリの 端末を追加 画面で、他の端末のリンクを貼り付け にリンクを貼り付けて 接続 をクリックします。
スマホが外出先にあっても使えますか?
はい。ペアリング後は、端末同士がインターネット経由で自動的に接続し、通信はエンドツーエンドで暗号化されたままです(インターネット経由で接続する)。