イントロダクション
TomatoはBroadcomチップ搭載ルーター向けのカスタムファームウェアで、標準ファームウェアより高度なネットワーク機能やパフォーマンス改善、追加パッケージの導入を可能にします。ハードウェア(チップ・メモリ容量)に依存するため、すべての格安ルーターで期待通り動くわけではありません。
重要: ファームウェアの書き換えはリスクが伴います。ルーターが対応していることを必ず確認し、ドキュメントに従って手順を慎重に実行してください。不適切な処理は機器の故障(ブリック)につながります。
主要用語(1行定義)
- JFFS: ルーター内部フラッシュの未使用領域をJFFS2ファイルシステムとして使う機能。
- Optware: 組み込み環境向けのパッケージ管理システム。
- SSH: セキュアシェル。リモートでコマンド実行を行う方法。
対応確認(事前チェック)
- Shibby Tomato Buildsでお使いの機種がサポートされているか確認してください。
- ルーターのフラッシュサイズ(例: 4MB/8MB/16MBなど)を確認。小さいと追加パッケージが難しいです。
- USBポートがあるとパッケージ導入やストレージ確保が容易になります。
注意: 一部機種は標準のWebインターフェースで書き込みできない場合があります(例: Asus RT-N53 等)。その場合はメーカーの「緊急アップロード」手順を利用してください。
準備(バックアップとセーフティ)
- 現在の設定を必ずバックアップしてください(管理画面の「バックアップ/復元」など)。
- 電源断が発生しないように安定した環境で作業してください(ノートPCやUPS推奨)。
- 書き込み手順を読み、必要なファイル(Tomatoビルド、インストールスクリプト)を事前にダウンロードしておくと作業がスムーズです。
手順(ステップバイステップ)
以下は一般的な流れです。UI名はファーム上の表記に合わせて「管理」「アクセス制御」など日本語に置き換えています。
Step 0: Tomatoをインストール(既に済んでいる前提)
お使いのルーターが対応しているなら、まずShibbyなどの最新のTomatoビルドを管理画面からフラッシュします。AIO(All In One)とVPN版などのバリエーションがあります。AIOは機能豊富、VPNは小さく軽量です。
Step 1: JFFSパーティションを作成する
管理 → JFFS を開き、以下を操作します。
- 有効化: Enable
- フォーマット/消去: Format Erase
テキストボックスに以下を貼り付けます(後述の手順で利用します)。
mount -o bind /jffs /opt
貼り付け後、数分待ってもメッセージが出ない場合はルーターを再起動してください。
重要: フラッシュ領域のサイズによりJFFSで利用できる容量が大きく変わります。容量不足の機種ではUSBドライブの利用を検討してください。
Step 2: 管理インターフェースのポート変更
管理 → 管理アクセス(Admin Access)で管理用ポートを変更します(例: 8082)。これによりブラウザから次のようにアクセスできます。
https://<ルーターのIPアドレス>:8082
Step 3: SSHでルーターに接続
WindowsではPuTTY、macOS/Linuxではターミナルを使います。macOSの場合のコマンド例:
ssh -l root <ルーターのIPアドレス>
- ユーザー名は root
- パスワードは管理者(admin)設定のもの
Step 4: Optwareパッケージマネージャをインストール
/tmp に移動してインストールスクリプトを実行します(元ソースのコマンドをそのまま利用しています)。ネットワーク速度とルーターのCPU性能により時間がかかります。
cd /tmp wget https://tomatousb.org/local–files/tut:optware-installation/optware-install.sh -O – | tr -d ‘\r’ > /tmp/optware-install.sh chmod 755 optware-install.sh sh optware-install.sh
注意: コマンドの特殊文字(ダッシュや引用符)が環境により異なる場合があります。エラーが出る場合はシェル互換の文字に置換して実行してください。
Step 5: 必要パッケージのインストール
例としてnano(テキストエディタ)、lighttpd(軽量Webサーバ)、PHPを導入します。
ipkg install nano
ipkg install lighttpd
ipkg install php-fcgi
Step 6: lighttpdの設定編集
設定ファイルを編集します。
nano /opt/etc/lighttpd/lighttpd.conf
ファイル内に以下を追加または変更してください。
server.event-handler ="poll"
server.port = 80
- server.port はデフォルトで 8081 の場合があります。必要に応じて 80(標準HTTP)へ変更。
保存してnanoを閉じます。
Step 7: Webサーバ再起動と公開設定
/opt/etc/init.d/S80lighttpd restart
ドキュメントルートは /opt/share/www/ です。ここにPHPやHTMLファイルを置きます。
WAN側からアクセスさせたい場合は、管理 → スクリプト → ファイアウォール に以下を追加してください。
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
セキュリティの観点から、公開するポートやサービスは最小限に留め、必要があればアクセス制限(IP制限、VPN経由の管理)を検討してください。
追加の価値セクション
代替アプローチ
- OpenWrt: より幅広いハードウェアとパッケージ対応。高機能だが学習コストあり。
- DD-WRT: 多くの機種をサポートする別のカスタムファームウェア。用途により選択。
いつ使うべきか: ルーターがTomatoをサポートし、簡単にVPNやQoS、パッケージ追加をしたい場合に最適。
失敗例(いつうまくいかないか)
- ルーターが非対応(チップセットが違う、フラッシュ容量不足)。
- 書き込み中に電源断が起きた場合(復旧不可の可能性)。
- インストールしたパッケージがメモリ/CPUを圧迫し、ルーターが不安定になる場合。
役割別チェックリスト
- 初心者:
- 対応機種か確認する
- 設定のバックアップを取る
- AIOよりVPN版や軽量版を検討する
- 中級者:
- JFFSを作成し、Optwareで基本ツールを導入
- SSHでの操作に慣れる
- 管理者/上級者:
- 監視・ログの導入
- ファイアウォールで公開範囲を限定
- 自動起動スクリプトを整備
セキュリティ強化(推奨)
- 管理インターフェースはデフォルトのポートから変更し、可能なら管理アクセスをLAN内に限定する。
- SSHは公開鍵認証に切り替え、rootログインを制限する。
- 不要なパッケージはインストールしない。Webサーバを公開する場合は脆弱性のあるスクリプトを置かない。
ミニ手順(導入方針)
- 対応確認とバックアップ
- Tomatoフラッシュ
- JFFS作成 → /optを準備
- Optware導入 → 必要パッケージを追加
- サービス動作確認 → 永続化設定
- セキュリティ設定と監視
受入基準(導入後に確認すること)
- 管理画面にアクセス可能であること(指定ポートでHTTPSで接続)
- SSHでrootログインできること
- /opt/share/www/ に配置したページがHTTPで表示されること
- 再起動後もインストールしたサービスが起動すること(永続化の確認)
よくあるトラブルと対処
- コマンド実行で文字化けやエラーが出る: シェルの引用符やダッシュが正しいASCII文字か確認する。
- ipkgが見つからない/失敗する: Optwareが正しくインストールされているか、ネットワーク接続を確認する。
- ストレージ不足: USBストレージを使うか、不要ファイルを削除してJFFS容量を確保する。
まとめ
Tomato USBを使えば、格安ルーターでも追加機能や簡易サーバー運用が可能になります。ただしハードウェア制限、書き換えリスク、セキュリティ面は十分考慮してください。導入前に機種の対応可否とフラッシュ容量を確認し、バックアップと復旧手順を用意してから進めましょう。
重要: 公式ビルドや信頼できる配布元からファームウェアを入手し、手順に従って慎重に作業してください。
参考(非網羅)
- Shibby Tomato Builds — 対応機種とビルドを確認。