
OpenWrtは無料かつオープンソースのルーター用オペレーティングシステムで、Linuxカーネルをベースに開発されており、ソフトウェアルーター、ハードウェアルーター、さまざまな組込みネットワーク機器で広く使われています。従来のルーターファームウェアとは異なり、OpenWrtは完全に書き込み可能でパッケージ管理機能付きのファイルシステムを提供し、各種アプリを自由にインストールしてルーターの機能を拡張できます。メーカーの制限から完全に解放されましょう。
現在最も人気のあるオープンソースのルーターシステムの一つとして、OpenWrtには活発な開発者コミュニティと豊富なプラグインエコシステムがあり、1,000以上のソフトウェアパッケージをサポートしています。一般的なルーターをスマートなソフトウェアルーターに改造したい場合でも、家庭用NASの構築や広告ブロックを行いたい場合でも、OpenWrtがあなたのニーズに応えます。

準備
ハードウェア要件
OpenWrt用のルーターを選ぶ際は、フラッシュメモリ8MB以上、メモリ64MB以上のデバイスを探すことをおすすめします。これにより、オペレーティングシステムとWeb管理画面(LuCI)の全機能が正常に動作します。
ファームウェアの選択
ルーターの特定のモデルとハードウェアバージョンに合った正しいファームウェアファイルを選ばなければなりません。例えばTP-Link WR841Nハードウェアバージョン8には、対応バージョンのファームウェアを使う必要があります。間違ったファイルを使うとデバイスが「文鎮化(ブリック)」する可能性があります。正しいファームウェアファイルは通常factory.binという拡張子で終わります。
OpenWrt公式ファームウェアセレクターで、お使いのデバイスがサポートするファームウェアバージョンを検索できます。
OpenWrtファームウェアのインストール
書き込み手順
OpenWrtファームウェアの書き込みは、ルーター純正のWeb管理画面から行います:
- イーサネットケーブルでパソコンとルーターを接続(WiFiでファームウェアを書き込まないこと)
- 純正管理画面にログイン
- 「システムツール」→「ファームウェアアップグレード」ページへ移動
- ダウンロードしたOpenWrt factory.binファームウェアファイルを選択
- アップグレードをクリックし、ルーターの再起動を待つ
⚠️ 重要: 書き込み中は絶対に電源を切ったりケーブルを抜いたりしないでください。ルーターが文鎮化する恐れがあります。
初期アクセス
書き込み完了後、ケーブルでルーターに接続し、ブラウザでhttp://192.168.1.1にアクセスするとOpenWrtのWeb管理画面(LuCI)に入れます。初回ログイン時はパスワードなしで、そのままログインボタンをクリックするだけです。
セキュリティ強化と基本設定
OpenWrtインストール後、まずやるべきことはセキュリティ強化です:
rootパスワードの設定
- 「システム」→「管理権限」へ移動
- 「ルーターパスワード」欄に新しいrootパスワードを設定
- 「保存して適用」をクリック
WiFiの有効化
デフォルトでは、OpenWrtの無線機能は無効になっています。手動で有効化する必要があります:
- 「ネットワーク」→「無線」へ移動
- 無線デバイスに対応する「編集」ボタンをクリック
- 「無線を有効にする」にチェック
- 「無線セキュリティ」タブで暗号化方式(WPA2-PSK推奨)とパスワードを設定
- 「保存して適用」をクリック
LAN IPアドレスの変更
ネットワーク内にすでに192.168.1.1を使っている他のルーターがある場合、OpenWrtのLAN IPを変更して衝突を回避する必要があります:
- 「ネットワーク」→「インターフェース」→「LAN」→「編集」へ移動
- IPv4アドレスを変更(例:
192.168.9.1) - 「保存して適用」をクリック
- 重要: DHCP設定も同時に修正し、割り当てるIP範囲が新しいLAN IPと同じサブネット内にあることを確認
変更後は新しいIPで管理画面にログインし直す必要があります。
基本ネットワーク設定
DHCPリース
「ステータス」→「DHCPリース」で、接続中の全デバイスとIP割り当て状況を確認できます。
ネットワークインターフェース
OpenWrtは複数のインターフェースプロトコルをサポートしています:
| プロトコル | 説明 |
|---|---|
| DHCP | 上位ルーターから自動的にIPを取得。最も一般的 |
| Static(固定) | IPアドレス、サブネットマスク、ゲートウェイを手動設定 |
| PPPoE | 接続プロバイダーから提供されたアカウントとパスワードでダイヤルアップ |
ポートフォワーディング
「ネットワーク」→「ファイアウォール」→「ポートフォワーディング」でポートフォワーディングルールを設定し、外部からのリクエストをLAN内サーバーに転送できます。
ワイヤレスクライアントモード(リピーター/ブリッジ)
OpenWrtをワイヤレスクライアントとして設定し、既存のWiFiネットワークに接続した後、LAN上の有線デバイスに接続を共有できます。この機能は既存のネットワークカバレッジを拡張するのによく使われます:
- 「ネットワーク」→「無線」へ移動
- 「スキャン」をクリックして利用可能なWiFi信号を検索
- 対象ネットワークを選択し、「ネットワークに参加」をクリック
- モードを「クライアント」に設定
- 無線セキュリティ情報(パスワードなど)を設定
- 保存して適用
システムログ
OpenWrtは詳細なシステムログを保存しており、どのデバイスがIPアドレスを取得したか、システムアクティビティなど、ネットワークの稼働状況をリアルタイムで確認できます。
LuCIでは「ステータス」→「システムログ」で確認するか、SSHでlogreadコマンドを実行します。
LuCIプラグインおすすめ
OpenWrtの真価は、豊富なプラグインエコシステムにあります。実用的なLuCIプラグインをいくつかご紹介します:
| プラグイン | 機能 |
|---|---|
| luci-app-statistics | ルーターの履歴データグラフ。CPU、RAM、ネットワークトラフィックなどをモニタリング |
| luci-app-firewall | ファイアウォールの可视化管理 |
| luci-app-adblock | 広告ブロック。広告ドメインを自動で遮断 |
| luci-app-upnp | UPnP対応。自動ポートマッピング |
プラグインのインストールはSSHで次のコマンドを実行します:
opkg update
opkg install luci-app-statistics
またはLuCIの「システム」→「ソフトウェアパッケージ」で検索してインストールできます。
高度な設定
サブゲートウェイ(シングルアームルーター)設定ガイド
サブゲートウェイ(Single-Arm Router)はソフトウェアルーターでよく使われるデプロイモードです。メインルーターを置き換える必要はなく、OpenWrtをサブデバイスとして既存ネットワークに接続するだけです。
なぜサブゲートウェイが必要なのか?
- 既存ネットワークを壊さない:メインルーターがDHCPとNATを担当し続け、OpenWrtは追加機能を提供
- 柔軟な切り替え:必要な時だけゲートウェイをOpenWrtに切り替え、不要な時はそのまま
- 家庭/小規模事業所に最適:x86小型マシン1台 + メインルーターでデプロイ可能
サブゲートウェイのネットワーク設定
- 「ネットワーク」→「インターフェース」→「LAN」→「編集」へ移動
- 以下の設定を変更:
- IPv4アドレス:メインルーターと同じサブネットのIPに設定。例:メインルーターが
192.168.1.1なら、サブゲートウェイは192.168.1.2- サブネットマスク:255.255.255.0- ゲートウェイ:メインルーターのIPを指定。例:192.168.1.1- DNS:パブリックDNSを使用。例:223.5.5.5(Alibaba)または119.29.29.29(Tencent) - DHCPサービスを無効化:「DHCPサーバー」タブで「このインターフェースを無視」にチェック
- 「保存して適用」をクリック
クライアントからのサブゲートウェイ利用
デバイスがサブゲートウェイ経由でインターネットに接続する方法は2つあります:
方法1:ゲートウェイを手動指定(推奨)
- サブゲートウェイを使いたいデバイスで、ゲートウェイを手動でサブゲートウェイのIP(例:192.168.1.2)に設定
- 一部のデバイスだけ特別な機能を使いたい場合に適している
方法2:メインルーターのDHCPでサブゲートウェイを指定 - メインルーターのDHCP設定で、デフォルトゲートウェイをサブゲートウェイのIPに向ける - 全デバイスが自動でサブゲートウェイ経由になる。家全体のスマートホーム/広告ブロックなどに適している
Dockerコンテナのデプロイ
OpenWrtはDockerコンテナの実行をサポートしており、ルーター上で各種サービスをデプロイできます。
Dockerのインストール
# ソースを更新
opkg update
# Docker関連パッケージをインストール
opkg install docker docker-cli luci-app-dockerman
# Dockerサービスを起動
/etc/init.d/dockerd enable
/etc/init.d/dockerd start
インストール完了後、LuCI画面に「Docker」メニューが表示され、Web画面でコンテナを管理できます。
よく使われるDockerコンテナのデプロイ
AdGuard Home(広告ブロック)のデプロイ:
docker run -d \
--name adguardhome \
--restart unless-stopped \
-p 53:53/tcp -p 53:53/udp \
-p 80:80/tcp -p 3000:3000/tcp \
-v /etc/adguardhome/work:/opt/adguardhome/work \
-v /etc/adguardhome/conf:/opt/adguardhome/conf \
adguard/adguardhome
Home Assistant(スマートホーム)のデプロイ:
docker run -d \
--name homeassistant \
--restart unless-stopped \
--network host \
-v /etc/homeassistant:/config \
ghcr.io/home-assistant/home-assistant:stable
Aria2(ダウンローダー)のデプロイ:
docker run -d \
--name aria2-pro \
--restart unless-stopped \
-p 6800:6800 \
-p 6880:6880 \
-e PUID=1000 -e PGID=1000 \
-e RPC_SECRET=your-secret-token \
-v /mnt/downloads:/downloads \
p3terx/aria2-pro
注意: ルーター上でDockerを実行する場合はハードウェア性能を考慮してください。最低2GBメモリ + 8GBストレージのデバイスを推奨します。
マルチダイヤルとロードバランシング
マルチダイヤル(Multi-WAN)により、OpenWrtは複数のブロードバンド接続を同時に使用でき、合計帯域幅の向上や冗長化を実現します。
マルチダイヤル設定
- 関連パッケージをインストール:
opkg update
opkg install luci-app-mwan3
-
「ネットワーク」→「インターフェース」で複数のWANインターフェースを追加: - WAN1:ブロードバンド1に接続(例:eth1) - WAN2:ブロードバンド2に接続(例:eth2)
-
「システム」→「ロードバランシング(MWAN3)」でポリシーを設定: - ロードバランシング:トラフィックを複数のWANに比例配分 - フェイルオーバー:メインWAN障害時に自動でバックアップWANに切り替え - ポリシーベース分散:特定のIP/ポートを指定WAN経由に
MWAN3ロードバランシング設定例
# WANインターフェースの状態を確認
mwan3 status
# ポリシーを確認
mwan3 policy
広告ブロックソリューション
OpenWrtで広告ブロックを実現する方法は複数あります:
方法1:AdBlock(軽量)
opkg install luci-app-adblock
AdBlockはDNS解決を変更し、広告ドメインを0.0.0.0に向けることで広告をブロックします。設定が簡単で、リソース消費も少ないです。
方法2:AdGuard Home(推奨)
Dockerでデプロイ(上記参照)。より高機能です: - カスタムフィルタリングルールのサポート - 詳細なクエリログの提供 - ペアレンタルコントロールのサポート - アップストリームDNSの設定可能
方法3:PassWall / OpenClash
特殊なネットワークニーズを持つユーザー向け。複数のプロキシプロトコルと分散ルールをサポート。
# PassWallの例
opkg install luci-app-passwall
免責事項: これらのツールは技術研究および合法的な目的のみに使用してください。現地の法律・規制を遵守してください。
設定ファイルの構造
OpenWrtの設定ファイルはセクションとオプション/値の構造を使用し、/etc/config/ディレクトリ内に配置されます。
- 一般的な構文:
config <type> ["<name>"]でセクションを定義、option <name> "<value>"でオプションを定義 - これらのファイルはUCI(Unified Configuration Interface)システムによって解析されます
ネットワーク設定ファイル
ネットワークインターフェースの設定は/etc/config/networkに保存され、以下のプロトコルに設定できます:
none— 未設定static— 固定IP(ipaddrとnetmaskの設定が必要)dhcp— 自動取得pppoe— ダイヤルアップ接続
スイッチとVLAN設定
OpenWrtはVLAN設定のためのスイッチ設定をサポートしています:
- スイッチ設定は
/etc/config/networkに保存 - Broadcomハードウェアでは、セクション名は
eth0である必要がある - 各VLANは
vlan<n>と命名され、nはVLAN番号 - ポートのマーク:
*(デフォルトVLAN)、u(アンタグド)、t(タグド) - BroadcomハードウェアのCPUポートはポート5
無線設定(コマンドライン)
WiFi設定は/etc/config/wirelessで設定され、各無線ドライバーは/lib/wifi/<driver_name>.shに対応する設定ファイルがあります。
一般的な設定オプション:
- デバイスレベル: distance、mode、diversity、rxantenna、txantenna、txpower
- インターフェースレベル: network、device、mode、ssid、bssid
サポートされる無線モードには、アクセスポイント(AP)、クライアント(Client)、アドホック(Ad-hoc)、モニター(Monitor)、WDSポイントツープポイントが含まれます。
802.1x認証
OpenWrtは802.1x認証(クライアントおよびアクセスポイント設定)をサポートし、EAPタイプはTLS、TTLS、PEAPをサポートしています。
WANおよびWAN6インターフェース
- WAN: IPv4アップストリーム接続
- WAN6: IPv6アップストリーム接続
- LAN: ダウンストリームのIPv4とIPv6を処理。個別のLAN6インターフェースは不要
Hotplug(ホットプラグ)
hotplugスクリプトを使って、ハードウェアイベントに応じてOpenWrtを動的に設定できます。例えばUSBデバイス挿入時の自動マウントなど。
Initスクリプト
すべてのシステムサービスの起動スクリプトは/etc/init.d/にあり、/etc/rc.commonをラッパーとして使用します。
よく使うコマンド:
/etc/init.d/<service> enable # 起動時自動有効化
/etc/init.d/<service> start # 即時起動
/etc/init.d/<service> stop # サービス停止
/etc/init.d/<service> restart # サービス再起動
その他の実用情報
SSHアクセス
SSHでOpenWrtのコマンドライン管理が可能です:
ssh root@192.168.1.1
SSHアクセスは「システム」→「管理権限」→「SSHアクセス」で有効化する必要があります。
テキストエディタ
viとnanoはコマンドラインで設定ファイルを編集するのに使えます。nanoは初心者により親切なのでおすすめです:
opkg install nano
nano /etc/config/network
Windows管理ツール
WindowsからOpenWrtを管理するには以下のツールが使えます:
- PuTTY — SSHクライアント
- WinSCP — SFTPファイル転送
- SmarTTY — モダンなSSHクライアント
- cmder — 強化版コマンドライン
開発とカスタマイズ(上級者向け)
📌 このセクションは開発者向けです。OpenWrtをルーターとして使うだけなら、読み飛ばして構いません。
ビルドシステム
OpenWrtビルドシステムにより、開発者はクロスコンパイルを使ってカスタムファームウェアイメージを作成できます。
ソースコードの取得
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
主なディレクトリ構造:
| ディレクトリ | 説明 |
|---|---|
tools/ |
ビルドツール |
toolchain/ |
クロスコンパイルツールチェーン |
package/ |
パッケージ定義 |
target/ |
ターゲットプラットフォーム設定 |
設定とビルド
./scripts/feeds update -a # ソースを更新
./scripts/feeds install -a # ソースをインストール
make menuconfig # ビルド設定:プラットフォーム、ツールチェーン、パッケージを選択
make -j$(nproc) # コンパイル開始
パッケージ
OpenWrtファームウェア内のほとんどすべてが.ipk形式のパッケージで、自由に追加・削除できます。
カスタムパッケージの作成
Makefileを作成して新しいパッケージを定義します:
include $(TOPDIR)/rules.mk
PKG_NAME:=my-package
PKG_VERSION:=1.0
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
define Package/my-package
SECTION:=utils
CATEGORY:=Utilities
TITLE:=My custom package
endef
define Package/my-package/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) ./files/my-script $(1)/usr/bin/
endef
$(eval $(call BuildPackage,my-package))
設定可能なオプション:PKG_NAME、PKG_VERSION、PKG_RELEASE、PKG_SOURCE、PKG_SOURCE_URL、PKG_MD5SUMなど。
カーネルモジュールパッケージの作成
KernelPackageセクションを定義してカーネルモジュールのパッケージを作成できます。設定可能なオプション:TITLE、DESCRIPTION、SUBMENU、KCONFIG、FILES、AUTOLOAD。
トラブルシューティング
# メニューコンフィグにパッケージが表示されるか診断
make -C package/<name> DUMP=1 V=99
# 特定パッケージをクリーン
make package/<name>/clean V=99
# 特定パッケージをインストール
make package/<name>/install V=99
新しいプラットフォームサポートの追加
OpenWrtを新しいデバイスに移植するテクニック:
- OSフィンガープリント(nmapなど)
- ポートスキャン
- バイナリファームウェアイメージの解析
- フラッシュ容量の確認
- シリアルデバッグ接続
デバイス情報と開発キットを見つけたら、カーネルパッチとバイナリドライバーをOpenWrt向けに調整し、新しいフラッシュマップドライバーとファームウェアビルドツールを開発できます。
バグ報告
OpenWrtはGitHub Issuesを使用してバグ報告と機能リクエストを行っています。開発者はイシューのクローズ、承認、修正が可能です。
比較:OpenWrt vs DD-WRT vs pfSense vs MikroTik RouterOS
| 項目 | OpenWrt | DD-WRT | pfSense | MikroTik RouterOS |
|---|---|---|---|---|
| オープンソース | ✅ 完全オープンソース(GPL) | ✅ オープンソース | ✅ オープンソース(BSD) | ❌ 商用ソフトウェア |
| 価格 | 無料 | 無料 | 無料 | $45-295(ライセンスレベルによる) |
| ハードウェア対応 | 非常に幅広い(1000+デバイス) | 幅広い(700+デバイス) | x86/APUのみ | MikroTikハードウェアのみ |
| プラグインエコシステム | 1000+パッケージ | 限定的 | 豊富(FreeBSD ports) | 内蔵機能が豊富 |
| Web画面 | LuCI(軽量) | 独自Web画面 | プロフェッショナルWeb画面 | WinBox / WebFig |
| Dockerサポート | ✅ Docker実行可能 | ❌ | ⚠️ 限定的 | ❌ |
| 学習コスト | 中程度 | 中程度 | やや急 | 急 |
| 適したシーン | ソフトウェアルーター/家庭/小規模事業所 | 家庭用ルーター | 企業ファイアウォール | 企業ネットワーク/ISP |
| コミュニティ活跃度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
選び方のアドバイス: - OpenWrt — ソフトウェアルーターのカスタムファームウェア書き込みの第一候補。ハードウェア互換性が最も広く、プラグインエコシステムも最も豊富 - DD-WRT — 老舗ルーターファームウェア。手間をかけずに純正より強力な機能が欲しいユーザー向け - pfSense — プロフェッショナルグレードのファイアウォール/ルーターソリューション。企業ネットワーク向け - MikroTik RouterOS — 企業ネットワーク/ISPレベル。強力な機能だが専門トレーニングが必要
OpenWrt よくある質問 FAQ
Q1: OpenWrtとは?通常のルーターファームウェアと何が違うの?
A: OpenWrtはLinuxカーネルベースのオープンソースのルーター用オペレーティングシステムです。通常のルーターファームウェアとの最大の違いは以下の通りです: - 完全カスタマイズ可能:OpenWrtはパッケージ管理機能付きの完全なファイルシステムを提供し、ソフトウェアの自由なインストール/アンインストールが可能 - オープンソースで透明:コードは完全に公開され、バックドアはなく、コミュニティ駆動で開発 - 幅広いハードウェア互換性:1,000種類以上のルーターデバイスをサポート - 高度な機能:Dockerコンテナ、VPN、QoS、広告ブロック、ソフトウェアルーターなどをサポート
Q2: どのルーターにOpenWrtを書き込めるの?
A: OpenWrtは非常に幅広いハードウェアデバイスに対応しています: - 家庭用ルーター:TP-Link、Netgear、Linksys、ASUS、Xiaomiなど - x86ソフトウェアルーター:Intel/AMD x86プラットフォームの小型マシン、産業用コンピュータ - 開発ボード:Raspberry Pi、Banana PiなどのSBC
OpenWrtファームウェアセレクターにアクセスし、お使いのデバイスモデルを入力して対応しているか確認することをおすすめします。
Q3: OpenWrtの書き込みで文鎮化することはある?復旧方法は?
A: ファームウェア書き込みにはリスクがありますが、正しい手順に従えば通常は安全です: - リスク低減:正しいファームウェアバージョンの使用、書き込み中の電源維持、純正ファームウェアの事前バックアップ - 復旧方法: 1. TFTP復旧:ほとんどのルーターはTFTP復旧モードをサポート 2. シリアルデバッグ:TTLシリアル経由で接続して修復 3. CFE/Bootloaderモード:bootloaderに入って再書き込み 4. プログラマーによる直接書き込み:分解してプログラマーでフラッシュチップに直接書き込み
推奨: 書き込み前に純正ファームウェアをバックアップし、お使いのデバイスの復旧方法を事前に確認しておきましょう。
Q4: OpenWrtはDockerをサポートしている?
A: はい、OpenWrtはDockerコンテナの実行をサポートしています。dockerdと関連依存関係をインストールする必要があります:
opkg install docker docker-cli luci-app-dockerman
安定性とパフォーマンスを確保するため、最低2GBメモリのデバイス上でDockerコンテナを実行することをおすすめします。
Q5: OpenWrtとLEDEの関係は?
A: LEDE(Linux Embedded Development Environment)はOpenWrtのフォークです。2016年、一部の開発者が開発プロセスの不一致によりLEDEプロジェクトを立ち上げました。2018年、LEDEとOpenWrtは再統合され、現在ではOpenWrtの名前で統一されています。現在目にしているOpenWrtには、実際にはLEDE時代の改良成果が含まれています。古い資料でLEDEを見かけた場合、それはOpenWrtのことです。