世界を動かす技術を、日本語で。

あらゆるものをルーターに変える方法

2026年3月30日原文(nbailey.ca)

概要

  • 米国政府による新規ルーター輸入禁止政策への対策として、自作ルーターの構築方法を解説
  • Linux搭載ミニPCなど、一般的なPCを使ったルーター化の実例紹介
  • 必要なハードウェア・ソフトウェア構成や設定手順を詳細に説明
  • セキュリティやネットワーク管理の基本設定もカバー
  • 追加機能や拡張のヒントも掲載

自作ルーターのすすめと背景

  • 米国政府の新政策 により、新型家庭用ルーターの輸入が実質禁止される可能性
  • 既存のPCやミニPCを利用して 自作ルーター を構築する方法の提案
  • ルーターは本質的に 汎用コンピュータ であり、特別な専用機器でなくても十分機能
  • DebianやAlpine Linuxなど、 Linuxディストリビューション を利用した安定運用の実績
  • この手法は政策への「実用的な対抗策」ではなく、 ハードウェアの活用例 として紹介

ハードウェア選定

  • パッシブ冷却ミニPC が推奨だが、デスクトップPCやSBC、旧ノートPCなども利用可能
  • Ethernetインターフェース2つ が理想、USB-Ethernetアダプタでも代用可
  • 低スペックCPU(例:Celeron 3205U 1.5GHz)でも家庭・小規模事業用途なら 十分な性能
  • 古いノートPC+ExpressCard Ethernetカード、古いスイッチ、ジャンク無線APの組み合わせ例

ネットワーク構成例

  • WAN(eth0)、有線LAN(eth1)、無線LAN(wlan0)という 3インターフェース構成
  • LAN側インターフェースは ブリッジ接続 し、有線・無線間の通信を可能に
  • USB-Ethernetアダプタを追加し LANポート拡張 も可能(速度は専用スイッチに劣る)

必要なソフトウェア

  • Debian を例に、必要なパッケージは以下
    • hostapd(Wi-Fiアクセスポイント用)
    • dnsmasq(DNS・DHCPサーバ)
    • bridge-utils(ブリッジ設定)
  • 無線LAN用の ファームウェア追加 も必要な場合あり
    • Intel用: firmware-iwlwifi
    • Realtek用: firmware-ath9k-htc
    • 古いAtheros用: firmware-atheros

インストールと初期設定

  • PXEネットワークブートの BIOS/UEFI無効化
  • 電源復帰設定やUSB/PCI電源管理の 最適化
  • ディスプレイ未接続時の起動対策として HDMIダミードングル 活用推奨
  • 非フリーリポジトリの有効化や 追加ファームウェア の導入

インターフェース名の固定

  • /etc/systemd/network/10-persistent-ethX.linkMACアドレスごとの固定名割当
  • 旧式のethX表記で管理性向上

無線LANアクセスポイントの設定

  • /etc/hostapd/hostapd.confSSIDやパスワードなどを定義
  • hostapdサービスの 有効化と起動
  • 小規模空間ならUSB Wi-Fiドングルでも実用範囲
  • 安定運用重視なら 専用AP機器 推奨

ネットワークインターフェース設定例

  • /etc/network/interfacesIPアドレスやブリッジ構成 を定義
  • 再起動後、brctl showブリッジ状態確認

IPフォワーディングとファイアウォール設定

  • /etc/sysctl.d/10-forward.confnet.ipv4.ip_forward=1を設定し IP転送有効化
  • nftablesによる 標準的なNAT・ファイアウォールルール
    • 外部からの不正アクセス遮断
    • DNS・DHCP・SSHはLAN側のみ許可
  • nftablesサービスの 自動起動

DHCP・DNSサーバ設定

  • dnsmasqによる シンプルなDHCP・DNS構成
    • /etc/dnsmasq.confでIPレンジやゲートウェイ指定
  • サービスの 自動起動

シリアルコンソールによる管理

  • /etc/default/grub編集で シリアルポートからの管理 を有効化
  • systemctl enable [email protected]Gettyサービス起動

動作確認と運用

  • 再起動テストで 安定動作を確認
  • nft list rulesetjournalctlファイアウォール・DHCPログ確認
  • nft -c -f設定ファイルの事前検証
  • systemctl reload nftables.service無停止ルール更新

拡張機能の例

  • ログ取得や トラフィックモニタリング
  • VLAN・セグメント分割、IPv6対応
  • DMZやVPN、ポートフォワーディング
  • ダイナミックルーティングや 侵入検知・遮断
  • ルーター自体には 最小限のソフトのみ 推奨、追加機能はDMZ/VLAN側に分離推奨

まとめ

  • 自作Linuxルーター は、安価なハードウェアと最小限の設定で十分な機能・安定性を実現可能
  • 政策や市販機器の制約に左右されず、 柔軟で拡張性の高いネットワーク構築 が可能
  • ネットワークの本質理解と ハードウェア資源の有効活用 に役立つ技術

Hackerたちの意見

OpnSense/pfsenseを何年も使ってるけど、めっちゃおすすめだよ。自動更新がすごく便利で、設定のバックアップもできるし、WireGuardトンネルも内蔵されてるし、Suricataを使ったパケットフィルタリングのオプションみたいな高度な機能もある。週末にネットワーク管理をしてるとき、Linuxのターミナルでネットワーキングの内部を学ぶ必要がなくて、Web UIにアクセスしてルーターを設定できるのが本当に嬉しい。

そうそう、これが正しい道だよ。Linuxを使うことでたくさん学べるけど、間違えたくないよね。私は低電力のIntel AtomミニPCに追加のNICをつけてルーターとして使ってたんだけど、テストしたら300Mb/sくらいルーティングできて、十分だった。でも、その後ギガビットインターネットに変えたから、eBayでIntelの4ポートGigEカードを買って、今はOPNSenseをVMで動かしてる。正しいIntelカードを使えば、ポートを個別にVMにパススルーできるから、遊ぶのに便利だよ(詳しいことは知らないけど、仮想化サポートのあるカードを探してみて、私のは82575GBだったと思う)。正直、私のセットアップはVMのせいでまだ問題が起きやすいかもしれないけど、専用ハードウェアを手に入れる時間がなくて、ここ数年は問題なく動いてる。

原則的には同意だけど、GUIの抽象化がLinuxのツールや用語、概念に必ずしも対応してないことが多くて、「これがLinuxだ、できるってわかってるし手動でできるのに、このGUIは何を考えてるんだ?!」って壁に頭をぶつけることがよくある。最近、Barracudaルーターを使ってみたんだけど、壁に頭をぶつけることになったのは、SSHインターフェースとLinuxユーザーランドがあって、必要なコマンドを直接入力することで問題を解決できたから。もちろん、GUIを使って設定を再適用したら手動での設定が消えちゃったけど… pfsense、OpenWRT、Barracuda、VerizonのOEMルーター(Actiontec)を使ったことがあるけど、どれも同じ機能を全然違う形で表現してるよね。

今は週末にネットワーク管理をしたくない段階なんだ。Ubiquitiのルーターを使ってて、結構いい感じなんだけど、ルーターにはTrueNASみたいな、ハードウェアを完全にアプライアンスに変えて、一度設定したら忘れられるようなディストリビューションが欲しいんだ。そんなのある?

最近opnsenseをやめたんだけど、いくつかやりたかったことに対して立場を取ったから(例、WANポートのwebUIだったかな)。高レベルでは理解できるけど、私より賢いと思ってるデバイスが大嫌い。LAN上でWAN側を実際のローカルLANに設定しようとして、1時間もハッキングして「こんなこともできないなら、もういいや」と思った。技術の世界には、自分の使い方を理解してると思ってる人が、狭い視野で決定を下すことが多い。彼らの製品を使おうとしてるのが、ただのバカな家庭用ユーザーだけじゃないってことを理解できないから。

「Xを使えばいい」ってコメントが多いけど、この記事はルーティングの基本がどれだけ簡単かを示してるんだよね。それに、もしDockerやNATルーティングの仮想マシンを使ったことがあるなら、同じことをやってるってこと。AndroidのスマホでWi-Fiホットスポットを有効にしたことがあるなら、この記事が説明してることをほぼそのままやってるよ。これらはすべて、裏では同じLinuxカーネルの機能を使ってるんだ。実際、このメッセージがあなたの画面に届くまでに、複数のLinuxソフトルーターを通過した可能性が高いよ。

「OPNsenseを使えばいい」っていうのは、運用にはいいアドバイスだけど、学ぶには最悪なアドバイスだよね。この文章は、ルーティングにどれだけ魔法が関わっていないかを示しているから、価値があるんだ。

これ、懐かしいな。Linuxを実際に使い始めたのは、余ったコンピュータでルーターを作ることだった。あの頃の完璧なマシンは100MHzのPentiumで、スリムなデスクトップケースに入ってた。Pentium IIIがデスクトップ用のチップだったから、初期のPentiumクラスのマシンがたくさんあったんだ。そして、10mbのISAネットワークカード(できれば3Com)があれば、その時代のインターネット接続には十分なパワーがあった。でも、100mbのPCIカードはまだかなり安かった。NICを2枚インストールして、お気に入りのLinuxディストリビューションをロードして、IP-MasqueradingのHOWTOに従えば、アパート全体やオフィス、LANパーティーのためのインターネットアクセスができた。最終的には、Robert ZieglerのLinux Firewallsを基にして、他のサービスも追加していったんだ。スパムフィルターやSquidキャッシュを追加して、捨てられる予定だったハードウェアがこんなに活用できるなんて、すごかったよ。

あは、私の話にもすごく近いね。166MHzのPentiumを使ってて、すべてPCIカードと100Mbitだった。その時が私のキャリアの始まりだった。

逆のケースだけど、俺のLinuxの最初の本格的な使い方は、OpenWRTでルーターをフラッシュして遊ぶことだったよ!

数年前に、両親のために隣のWiFiとつなぐためにPentium MMX 200MHzのシステムを使ったことがあるよ(もちろん、許可を得てね)。DSLが数日間ダウンしてた時にね。PCIのEthernetとWiFiカードを入れて、OpenBSDをブートしたら、驚くほど速くてダウンタイムを乗り切れたんだ。 :)

懐かしいな、同じような経験があるよ。新聞社のニュースルームとオフィスを一台のコンピュータでISDN接続を共有してオンラインにしたんだ。確か、100MHzのGateway 2000コンピュータだったと思う。それが「ウェブサイトが欲しいんだけど、作れる?」って話に発展して。まあ、作れなかったけど、Apacheが使えたから、なんとかスキルを身につけて他のところでも活用したよ。ウィスコンシンのある場所でも同じことを繰り返して、最初は56kのダイヤルアップ接続を全てのディスパッチャーと共有してたんだけど、そのデバイスが900日も再接続せずに動いてたことに感心されてた。90%の作業はオンプレミスのWyseターミナルでやってたし、ダイヤルアップはメールや住所をググるために使ってた。27、28年後、今でも時々呼ばれて、Linuxで安く何かを達成する方法を聞かれる。時代や技術は変わったけど、彼らが安く済ませたい気持ちは変わらないね!

Hacker Newsで議論の続きを見る