スマートフォンからサーバー・NAS・Raspberry Pi にファイルを送る

最終確認

ブラウザ型のファイル共有ツールの多くは、受信側でもブラウザのタブを開いておく必要があります。ところが自宅サーバー、NAS、Raspberry Pi、クラウド上の VM には画面もブラウザもありません。tosstome のコマンドライン受信箱は、まさにそうしたマシンのために作られています。

受信箱をセットアップする

サーバーで次のコマンドを実行します(Node.js 22 以降が必要です)。

tosstome listen --dir /srv/inbox

ターミナルにリンクと QR コードが表示されます。

スマートフォンがサーバーと同じネットワークにいるときは、ファイルはそのネットワーク内だけで直接届き、外には出ません。それ以外の場所からは、2 つのネットワークの条件が合えば直接、合わなければ何も保存しない中継サーバーを経由して届きます。

受信箱のリンクは再起動しても変わらないので、ホーム画面のアイコンはそのまま使えます。あとからもう一度リンクを表示するには tosstome url を実行します。古いリンクを捨てて新しく作り直すには tosstome listen --new を実行します。

受信箱の保護のしくみ

ローカルネットワークにも表示する

tosstome listen --nearby

--nearby を付けると、同じネットワークにいるブラウザの「同じネットワーク」の一覧にもサーバーが表示され、リンクなしで家の誰からでも送れるようになります。そのネットワークにいれば誰でも送れてしまうため、こうして届いたファイルは別の nearby/ サブフォルダーに入ります。

サービスとして常時稼働させる

常にファイルを受け付けたいマシンでは、ほかのサービスを動かしているのと同じ仕組み、たとえば systemd のユニット、Docker コンテナ、tmux などの上でこのコマンドを動かします。--json を付けると、ログやスクリプト向けに、1 行につき 1 つの JSON イベント(ready、offer、file、error)が出力されます。

[Unit]
Description=tosstome inbox
After=network-online.target

[Service]
ExecStart=/usr/bin/env tosstome listen --dir /srv/inbox --json
Restart=always
User=media

[Install]
WantedBy=multi-user.target

別のコンピューターのターミナルから送る

tosstome send report.pdf photos.zip --to "INBOX_LINK"

リンクには、シェルがコメントとして扱う # が含まれるので、引用符で囲んでください。

よくある質問

サーバーにグローバル IP やポート開放は必要ですか?

いいえ。受信箱は toss2.me へ外向きの WebSocket 接続を張って待機するので、家庭用ルーターや NAT、外向きの HTTPS を許可しているファイアウォールの内側でも動きます。

自宅では、ファイルはインターネットを経由しますか?

いいえ。toss2.me を通るのは、短い接続のやり取りだけです。スマートフォンとサーバーが同じネットワークにいるときは、ファイルは WebRTC で両者の間を直接流れるので、速度は Wi-Fi や Ethernet で決まります。直接か中継かは、ページに表示されます。

送信したときにサーバーがオフラインだったらどうなりますか?

何も送信されず、何も保存されません。スマートフォン側のページに、受信箱がオフラインだと表示されます。

ほかの人が自分の受信箱に送ることはできますか?

リンクを知っている人だけです。リンクが漏れたら tosstome listen --new を実行して作り直してください。古いリンクは使えなくなります。

ファイルサイズの上限はありますか?

tosstome 側では上限を設けていません。受信側のブラウザは、保存するまでファイルをメモリに保持します。そのため数 GB のファイルでは、データをそのままディスクに書き込むコマンドラインの受信箱のほうが受信に向いています。

関連ページ

今すぐ試す

2 台のデバイスで toss2.me を開くだけ。アプリもアカウントも不要で、何も保存しません。

ファイルを送る