<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>自宅サーバー on AIによる技術記事 備忘録</title><link>https://ai.hack-le.com/tags/%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC/</link><description>Recent content in 自宅サーバー on AIによる技術記事 備忘録</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Mon, 02 Nov 2026 09:23:51 +0900</lastBuildDate><atom:link href="https://ai.hack-le.com/tags/%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC/index.xml" rel="self" type="application/rss+xml"/><item><title>自宅サーバー公開におけるルーティング設計：Cloudflare TunnelとCaddyの役割分担</title><link>https://ai.hack-le.com/%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E5%85%AC%E9%96%8B%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E8%A8%AD%E8%A8%88%EF%BC%9Acloudflare/</link><pubDate>Sun, 25 Oct 2026 22:30:33 +0900</pubDate><guid>https://ai.hack-le.com/%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E5%85%AC%E9%96%8B%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E8%A8%AD%E8%A8%88%EF%BC%9Acloudflare/</guid><description>&lt;p&gt;自宅サーバーで複数のWebアプリケーションをホストする際、外部公開手段としての &lt;strong&gt;Cloudflare Tunnel（&lt;code&gt;cloudflared&lt;/code&gt;）&lt;/strong&gt; 、ローカル環境用のリバースプロキシとしての &lt;strong&gt;Caddy&lt;/strong&gt;、そしてLAN内の名前解決を担う &lt;strong&gt;AdGuard Home&lt;/strong&gt; などのDNSサーバーを併用する設計は広く利用されています。&lt;/p&gt;&#10;&lt;p&gt;この構成を検討する際によく生じる疑問が、「外部からのアクセスは Caddy を経由させるべきなのか、それとも &lt;code&gt;cloudflared&lt;/code&gt; から直接各アプリケーションのポートへ向けるべきなのか」というルーティングの設計判断です。結論から言えば、通信プロトコルとしてはいずれの経路も正常に成立します。両者の違いは正誤ではなく、&lt;strong&gt;システムの単純性を取るか、ローカル側での制御の一元化を取るか&lt;/strong&gt;という設計原則のトレードオフにあります。&lt;/p&gt;&#10;&lt;h2 id="物理配置とネットワーク境界の前提"&gt;物理配置とネットワーク境界の前提&#10;&lt;/h2&gt;&lt;p&gt;構成を整理する上での大前提として、各コンポーネントがネットワーク上のどこに配置されているかを正確に把握する必要があります。&lt;/p&gt;&#10;&lt;p&gt;外部からのトラフィックを受ける最初の接点は、インターネット上に分散配置された &lt;strong&gt;Cloudflare Edge&lt;/strong&gt; です。外部ユーザーはこのエッジサーバーに対して HTTPS アクセスを行います。一方、 &lt;strong&gt;&lt;code&gt;cloudflared&lt;/code&gt; の実体はインターネット上ではなく、自宅LAN内のサーバー上で動作するデーモン&lt;/strong&gt;です。このデーモンが自宅内から Cloudflare Edge に向けて外向き（アウトバウンド）の安全なトンネル接続を確立し、外部からの要求を自宅ネットワーク内部へ引き込みます。&lt;/p&gt;&#10;&lt;p&gt;したがって、通信の物理的な境界線は「インターネット上の Cloudflare Edge」と「自宅LAN内の &lt;code&gt;cloudflared&lt;/code&gt;」の間に引かれます。その上で、引き込んだトラフィックを LAN 内でどう分配するかが設計の分岐点となります。&lt;/p&gt;&#10;&lt;div class="mermaid"&gt;&#10;graph TD&#10;subgraph &amp;#34;インターネット (WAN)&amp;#34;&#10;User_Ext[&amp;#34;外部ユーザー&amp;#34;]&#10;CF_Edge[&amp;#34;Cloudflare Edge&amp;#34;]&#10;end&#10;subgraph &amp;#34;自宅LAN&amp;#34;&#10;Tunnel[&amp;#34;cloudflared&amp;#34;]&#10;User_Int[&amp;#34;LAN内クライアント&amp;#34;]&#10;AGH[&amp;#34;AdGuard Home(スプリットDNS)&amp;#34;]&#10;Caddy[&amp;#34;Caddy(リバースプロキシ)&amp;#34;]&#10;App[&amp;#34;Webアプリケーション群&amp;#34;]&#10;end&#10;User_Ext --&amp;gt; CF_Edge&#10;CF_Edge Tunnel&#10;User_Int -.-&amp;gt; AGH&#10;AGH -.-&amp;gt; User_Int&#10;&lt;/div&gt;&#10;&lt;h2 id="caddy-を経由させる構成単一ゲートウェイ原則"&gt;Caddy を経由させる構成（単一ゲートウェイ原則）&#10;&lt;/h2&gt;&lt;p&gt;外部からの通信をすべて一度 Caddy に集約し、Caddy から各アプリケーションへ中継する構成です。この方式は、トラフィックの流入元が外部トンネルであれローカルWi-Fiであれ、すべてのアプリケーションの前段に Caddy を唯一の「内部ゲートウェイ」として配置するという思想に基づいています。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;外部: ユーザー -&amp;gt; Cloudflare Edge -&amp;gt; cloudflared -&amp;gt; Caddy -&amp;gt; アプリケーション&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;内部: ユーザー -&amp;gt; (AdGuard Home で解決) -&amp;gt; Caddy -&amp;gt; アプリケーション&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="メリット"&gt;メリット&#10;&lt;/h3&gt;&lt;p&gt;この構成の最大の強みは、&lt;strong&gt;ルーティングとアクセスログのローカル一元化&lt;/strong&gt;にあります。&lt;code&gt;cloudflared&lt;/code&gt; 側の設定は「ドメイン全体の通信をすべてローカルの Caddy へ流す」という抽象的なルールのみで固定できます。これにより、新しくアプリケーションを追加・変更する際も、外部のトンネル設定に手を加える必要がなく、ローカルの &lt;code&gt;Caddyfile&lt;/code&gt; と内部 DNS レコードを更新するだけで作業が完結します。また、すべてのアクセスが Caddy を通過するため、ローカルサーバー単体で統一的なアクセスログを取得・監視することが可能です。&lt;/p&gt;&#10;&lt;h3 id="デメリットと注意点"&gt;デメリットと注意点&#10;&lt;/h3&gt;&lt;p&gt;この方式の課題は、&lt;strong&gt;二重リバースプロキシによる運用の複雑化&lt;/strong&gt;です。Cloudflare Edge で一度終端された HTTPS 通信が Caddy に渡されるため、プロキシヘッダーの適切な伝播が不可欠となります。具体的には、Caddy 側で &lt;code&gt;trusted_proxies&lt;/code&gt; などの設定を正しく行わないと、クライアントの送信元 IP アドレスが &lt;code&gt;cloudflared&lt;/code&gt; のローカル IP に上書きされたり、プロトコル（HTTP/HTTPS）の認識違いによって WordPress 等のアプリケーションでリダイレクトループが発生する原因になります。また、Caddy が停止した際に外部・内部双方の通信が同時にダウンするという、単一障害点（SPOF）を抱えることになります。&lt;/p&gt;&#10;&lt;h2 id="caddy-を経由させない構成疎結合最小ホップ原則"&gt;Caddy を経由させない構成（疎結合・最小ホップ原則）&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;cloudflared&lt;/code&gt; が備える Ingress ルールを用い、外部からの通信を Caddy を介さずに直接各アプリケーションのポート番号へフォワードする構成です。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;外部: ユーザー -&amp;gt; Cloudflare Edge -&amp;gt; cloudflared -&amp;gt; アプリケーション&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;内部: ユーザー -&amp;gt; (AdGuard Home で解決) -&amp;gt; Caddy -&amp;gt; アプリケーション&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="メリット-1"&gt;メリット&#10;&lt;/h3&gt;&lt;p&gt;この構成の根拠は、&lt;strong&gt;不要な中間レイヤーの排除&lt;/strong&gt;にあります。&lt;code&gt;cloudflared&lt;/code&gt; 自体がリバースプロキシとしての転送機能を備えているため、後段にさらに Caddy を挟むことは処理遅延と障害要因を増やすだけにすぎないという判断です。多段プロキシ構造を避けることで、前述したヘッダーの食い違いや SSL 終端に起因するリダイレクトトラブルのリスクを根本から排除できます。また、Caddy の設定ミスや障害が外部公開用エンドポイントに波及しません。&lt;/p&gt;&#10;&lt;h3 id="デメリットと注意点-1"&gt;デメリットと注意点&#10;&lt;/h3&gt;&lt;p&gt;一方で、&lt;strong&gt;ルーティング設定が2箇所に分散する&lt;/strong&gt;という管理上のコストが発生します。外部からのアクセス経路は Cloudflare 側（Zero Trust ダッシュボードまたはローカルの &lt;code&gt;config.yml&lt;/code&gt;）で定義し、LAN 内からのアクセス経路は &lt;code&gt;Caddyfile&lt;/code&gt; で個別に定義しなければなりません。ポート番号やコンテナの配置を変更した際に一方の更新を忘れると、「LAN内からは開けるが外部からは繋がらない」といった不整合が生じやすくなります。&lt;/p&gt;&#10;&lt;h2 id="運用における選択基準"&gt;運用における選択基準&#10;&lt;/h2&gt;&lt;p&gt;コミュニティや実際の運用環境における傾向を踏まえると、選択の基準は「管理するサービスの規模」と「ローカル完結の重要度」に集約されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Caddy 経由が選ばれるケース&lt;/strong&gt;: 多数のコンテナやサービスを自宅内で常時稼働させており、AdGuard Home によるスプリットホライズンDNSを構築してLAN内からの高速な直接アクセスを維持したい環境。サービス追加のたびに外部トンネルの設定を弄る手間を減らし、ローカル側の設定ファイル群でインフラを一元管理したい場合に適しています。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Caddy 非経由（直接転送）が選ばれるケース&lt;/strong&gt;: 公開するサービスが少数（数個程度）に限定されている環境。Cloudflare Zero Trust の GUI 管理画面上でサブドメインの転送先とアクセス制御（Cloudflare Access 等による認証）をまとめて視覚的に管理したい場合や、多段プロキシに起因するネットワークトラブルの検証コストを最小限に抑えたい場合に適しています。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;どちらの構成を選択する場合であっても、ネットワークの物理的な境界と各プロキシが担う責務の境界を明確に定義することが、安定したセルフホスト運用の基盤となります。&lt;/p&gt;&#10;</description></item><item><title>セルフホストLANにIPv6は本当に必要か？タワマン建設の論理と、個人のDIYを取り戻す話</title><link>https://ai.hack-le.com/%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88lan%E3%81%ABipv6%E3%81%AF%E6%9C%AC%E5%BD%93%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%8B%EF%BC%9F%E3%82%BF%E3%83%AF%E3%83%9E%E3%83%B3%E5%BB%BA%E8%A8%AD/</link><pubDate>Thu, 17 Sep 2026 14:27:24 +0900</pubDate><guid>https://ai.hack-le.com/%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88lan%E3%81%ABipv6%E3%81%AF%E6%9C%AC%E5%BD%93%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%8B%EF%BC%9F%E3%82%BF%E3%83%AF%E3%83%9E%E3%83%B3%E5%BB%BA%E8%A8%AD/</guid><description>&lt;p&gt;自宅でサーバーを立てたり、さまざまなオープンソースのツールを動かしたりする「セルフホスト」を楽しむ人が増えています。ネットワーク界隈の情報を見ていると、「これからはIPv6の時代だ」という言説を頻繁に見かけます。&lt;/p&gt;&#10;&lt;p&gt;しかし、実際に自宅LANで手を動かしていると、ある疑問に突き当たります。「自分の家のネットワークでまで、本当にIPv6を使いこなす必要があるのだろうか？」ということです。結論から言えば、&lt;strong&gt;一般的なセルフホスト環境のLAN内においては、プライベートIPv4を主軸に据える運用のほうが圧倒的に合理的で扱いやすい&lt;/strong&gt;のが実情です。&lt;/p&gt;&#10;&lt;h2 id="タワマン建設の論理とガレージのdiy"&gt;タワマン建設の論理と、ガレージのDIY&#10;&lt;/h2&gt;&lt;p&gt;IPv6が強力に推される最大の理由は、世界規模で枯渇しつつあるIPv4アドレス空間の制約を打破することにあります。地球上のあらゆる機器に一意なIPアドレスを割り振るという壮大な目標のために、IPv6は設計されました。&lt;/p&gt;&#10;&lt;p&gt;大規模なデータセンターや通信キャリア、巨大クラウドプラットフォームの現場では、この圧倒的なスケーラビリティが不可欠です。彼らにとってのアドレス管理は、DNSによる自動名前解決やコードによる構成管理（IaC）を通じて高度に抽象化されており、運用者が手動でIPアドレスを打ち込む世界ではありません。例えるなら、彼らが作っているのは巨大なタワマンです。&lt;/p&gt;&#10;&lt;p&gt;一方、私たちが自宅で行っているセルフホストは、ガレージで行う木工DIYのようなものです。自分の手でOSを入れ、LANケーブルを繋ぎ、お気に入りのWebサービスを立ち上げる。そこでは、自分の目で見てすぐ把握できる3桁×4の数字（プライベートIPv4）のほうが、道具としての手触りが圧倒的に優れています。&lt;/p&gt;&#10;&lt;p&gt;ガレージでちょっとした棚を作りたいだけなのに、「将来の拡張性と耐震性のために、まずは大型クレーンの搬入経路を確保し、免震ゴムを基礎に打ち込みましょう」と言われているような違和感。これが、個人宅のLANにIPv6を過剰に持ち込もうとしたときに感じるストレスの正体です。&lt;/p&gt;&#10;&lt;h2 id="セルフホストの現場でipv6が引き起こす泥臭いトラブル"&gt;セルフホストの現場でIPv6が引き起こす泥臭いトラブル&#10;&lt;/h2&gt;&lt;p&gt;実際にAdGuard Home（AGH）などのローカルDNSや、Caddyのようなリバースプロキシを自宅で動かしてみると、IPv6の設計思想が個人の管理と真っ向から衝突することがよくわかります。&lt;/p&gt;&#10;&lt;p&gt;IPv6には「SLAAC（ステートレス自動設定）」や「プライバシー拡張」といった便利な機能が組み込まれています。しかし、端末が自身のアドレスを勝手に決め、プライバシー保護のために頻繁に一時アドレスを生成して使い捨てるという挙動は、静的にサービスを固定して管理したいセルフホスト環境では大きな障害になります。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;クライアントが特定できない&lt;/strong&gt;：AGHのダッシュボードを開いても、暗号のような16進数のアドレスが次々と並び、家の中のどのスマホやPCがクエリを投げているのか一目では判別できません。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;設定の追従が難しい&lt;/strong&gt;：Caddyなどのリバースプロキシにアップストリーム先のアドレスを記述する際、端末側のアドレスやISPから降ってくるプレフィックスが変わってしまうと、ルーティングが容易に壊れます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;トラブルシューティングの難航&lt;/strong&gt;：1つのネットワークインターフェースに複数のIPv6アドレスが付与されるため、通信が通らないときにどのアドレスで詰まっているのかを切り分ける手間が跳ね上がります。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;対外的なインターネット通信については、ルーター側がMAP-EやDS-Liteといった技術、あるいは適切なNATやデュアルスタックによってIPv6の高速なバックボーンへ橋渡ししてくれます。つまり、&lt;strong&gt;LAN内の通信を無理にIPv6で統一しなくても、回線速度や帯域の恩恵はルーターの境界で十分に享受できる&lt;/strong&gt;のです。&lt;/p&gt;&#10;&lt;h2 id="コンピュータはキャリアアップの道具ではなく生活を便利にするおもちゃだ"&gt;コンピュータは「キャリアアップの道具」ではなく「生活を便利にするおもちゃ」だ&#10;&lt;/h2&gt;&lt;p&gt;最近の技術的な発信を見ていると、何事も「エンジニアとしてのスキルアップ」「実務に役立つポートフォリオ作り」という文脈で語られがちです。「自宅でサーバーを触ることもインフラの基礎勉強になる」という意見自体は間違いではありませんが、それが主目的になってしまうと、純粋な道具としての面白さが失われてしまいます。&lt;/p&gt;&#10;&lt;p&gt;私たちが自宅でサーバーをいじるのは、残業の続きをしたいからでも、資格試験の勉強をしたいからでもないはずです。&lt;/p&gt;&#10;&lt;p&gt;AdGuard Homeを立てるのは、家中の端末から鬱陶しい広告を消し去りたいからです。Caddyを使うのは、ブラウザの証明書エラーに邪魔されず、手元の管理画面へ快適にアクセスしたいからです。外部クラウドの仕様変更や利用料金に怯えることなく、自分のデータやサービスを自分のルールで動かす。その結果として「自分の生活が目に見えて快適になった」という実利があり、思い通りにパケットが流れたときの達成感が楽しいからこそ、手を動かしています。&lt;/p&gt;&#10;&lt;p&gt;実務に役立つかどうかや、最新のグローバル標準に準拠しているかどうかに過剰に縛られる必要はありません。目の前の箱をガチャガチャと動かし、自分の暮らしを自分の手でちょっと便利にする。その原点に立ち返るなら、扱いやすくて枯れ切ったIPv4をLAN内で使い倒すという選択は、妥協などではなく、極めて健全で合理的な現場の知恵と言えます。&lt;/p&gt;&#10;</description></item></channel></rss>