<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wireguard on plzhans blog</title><link>https://blog.plzhans.com/ja/tags/wireguard/</link><description>Recent content in Wireguard on plzhans blog</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Thu, 03 Sep 2026 11:08:00 +0000</lastBuildDate><atom:link href="https://blog.plzhans.com/ja/tags/wireguard/index.xml" rel="self" type="application/rss+xml"/><item><title>VPN・リモートアクセスガイド - 何を選べばいいか</title><link>https://blog.plzhans.com/ja/posts/121-vpn-remote-access-guide/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.plzhans.com/ja/posts/121-vpn-remote-access-guide/</guid><description>&lt;h2 id="概要"&gt;概要&lt;/h2&gt;&#10;&lt;p&gt;外出先からホームサーバー・NAS・オフィスの内部ネットワークに安全に接続するにはVPNが必要です。ポートフォワーディングでサービスをインターネットに直接公開する代わりに、VPNトンネルを通じてまるで同じネットワークにいるかのように接続するのが基本原則です。このブログには性格の全く異なる3つの方式(Tailscale、WireGuard、wg-easy)を扱った記事がありますが、「VPN」という名前は同じでも設定方法・セキュリティモデル・運用負担が全く異なるため、状況に合わせて選ぶ必要があります。&lt;/p&gt;&#10;&lt;h2 id="選択基準"&gt;選択基準&lt;/h2&gt;&#10;&lt;p&gt;方式を選ぶ前に、以下の5つを先に考えてみると役に立ちます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;NAT・ファイアウォール環境&lt;/strong&gt; — ルーターの内側にあるホームサーバーのようにポート開放が面倒・不可能な環境か、それとも固定IPを直接付けられるクラウドサーバーか。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;セキュリティモデル&lt;/strong&gt; — 接続を許可する端末を一つずつ明示的に登録するゼロトラスト方式が必要か、それとも従来型のサーバー・クライアント型VPNで十分か。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;運用負担&lt;/strong&gt; — サーバーインフラ(鍵管理、ファイアウォールルール、アップデート)を自分で保守する余力があるか、それとも管理型サービスに任せたいか。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;デバイス・ユーザー数&lt;/strong&gt; — 自分一人でノートPC1〜2台が接続できればいいのか、複数人がそれぞれ異なる権限で接続する必要があるのか。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;性能&lt;/strong&gt; — 大容量ファイル転送のようにスループットが重要か、それともSSH接続程度の軽いトラフィックか。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="方式の比較"&gt;方式の比較&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Tailscale&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;WireGuard&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;wg-easy&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;サーバー運用&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;不要(マネージド)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;自分で運用&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;自分で運用(Web UI)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ポート開放&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;ほぼ不要&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;必要(UDP)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;必要(UDP)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;設定の難易度&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;低い&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;高い(CLI・設定ファイル)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;中程度(Web UI)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;きめ細かな制御&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;低い&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;高い&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;中程度&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;マルチユーザー管理&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;tailnet ACL&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;手動(Peer登録)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Web UIで管理&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;適した状況&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;素早く始めたい個人・小規模チーム&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;インフラを全て自分で管理したい&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;WireGuardを楽に管理したい&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="まず何を見るべきか"&gt;まず何を見るべきか&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;ポートフォワーディングなしで素早く個人・小規模チーム用VPNが必要&lt;/strong&gt; → &lt;a href="../111-tailscale-linux-install-secure-remote-vpn/"&gt;Tailscale Linuxインストール - 安全なリモートVPN構成&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;VPNサーバーを自分で運用し、細かく制御したい&lt;/strong&gt; → &lt;a href="../116-wireguard-install-client-setup/"&gt;WireGuardのインストールとクライアント接続設定方法&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;WireGuardをWeb UIで楽に管理したい&lt;/strong&gt; → &lt;a href="../98-wg-easy-wireguard-masquerade-exclude-openvpn-client-ip/"&gt;wg-easy WireGuard MASQUERADE 除外設定でOpenVPNクライアントIPを維持する方法&lt;/a&gt;(ただし下記の注意点あり)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;OpenVPNを使いたい&lt;/strong&gt; → 最も古くから広く使われている方式で、クライアント互換性が高く資料も豊富です。このブログではまだ扱っておらず、今後別途記事で扱う予定です。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="実践シナリオ"&gt;実践シナリオ&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;旅行中にノートPCから自宅NASのファイルを一つだけ確認したい → Tailscale&lt;/li&gt;&#10;&lt;li&gt;会社の内部ネットワークにある複数のサーバーをチームメンバーに標準化された方法で開放したい → WireGuard&lt;/li&gt;&#10;&lt;li&gt;チームメンバー各自がWeb UIでQRコードを使ってWireGuard設定を登録できるようにしたい → wg-easy(ただしMASQUERADE除外設定が必須)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="tailscale--最も速く始められる方法"&gt;Tailscale — 最も速く始められる方法&lt;/h2&gt;&#10;&lt;p&gt;各デバイスがアウトバウンド接続のみでtailnetに参加する方式のため、別途ポート開放がほとんど不要です。直接P2P接続ができない場合はDERPリレーで迂回します。tailnet IP、accept-routes、serve/funnelモードまで状況別に整理しました。内部的にはWireGuardプロトコルをそのまま使っているため性能は純正WireGuardと大差なく、代わりに鍵交換・NAT越え・ACL管理をTailscaleが代行してくれる点が核心的な違いです。ノートPC1〜2台からホームサーバー1台に接続する程度であれば、まず試してみるべき方式です。&lt;/p&gt;</description></item><item><title>WireGuardのインストールとクライアント接続設定方法</title><link>https://blog.plzhans.com/ja/posts/116-wireguard-install-client-setup/</link><pubDate>Fri, 10 Jul 2026 08:20:00 +0000</pubDate><guid>https://blog.plzhans.com/ja/posts/116-wireguard-install-client-setup/</guid><description>&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/116-wireguard-install-client-setup/assets/1_39922a0f-7e83-8083-8055-de3d7910f539_hu_c80ea1d52f8ac1c0.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/116-wireguard-install-client-setup/assets/1_39922a0f-7e83-8083-8055-de3d7910f539_hu_a57aedad20a50ea6.png" alt="LinuxサーバーにWireGuard VPNを構築し、クライアントを接続する構成を示す代表画像" width="1200" height="670" loading="eager" fetchpriority="high"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;h2 id="概要"&gt;概要&lt;/h2&gt;&#10;&lt;p&gt;WireGuardは、簡潔な設定と軽量なパフォーマンスでpeer-to-peer VPNを構成できるツールです。&lt;/p&gt;&#10;&lt;p&gt;この記事では、LinuxサーバーにWireGuardをインストールし、サーバーキー・ファイアウォール・サービスを整えたうえで、Macクライアントから接続するまでの一連の流れをまとめます。&lt;/p&gt;&#10;&lt;p&gt;サーバーキーの生成、wg0の設定、UDP 51820ポートの開放、クライアントPeerの登録、接続確認までを順番に扱うため、同じ手順で設定できます。&lt;/p&gt;&#10;&lt;h2 id="サーバーのインストール"&gt;サーバーのインストール&lt;/h2&gt;&#10;&lt;p&gt;システムサービスとして動作するため、rootで進めてください。&lt;/p&gt;&#10;&lt;h3 id="基本インストール"&gt;基本インストール&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;apt install wireguard&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インストール確認&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wg --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="サーバーキーの生成"&gt;サーバーキーの生成&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;mkdir -p /etc/wireguard&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;wg genkey &lt;span class="p"&gt;|&lt;/span&gt; tee /etc/wireguard/server.key &lt;span class="p"&gt;|&lt;/span&gt; wg pubkey &lt;span class="p"&gt;|&lt;/span&gt; tee /etc/wireguard/server.pub&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 権限設定&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;600&lt;/span&gt; /etc/wireguard/server.key&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="環境設定"&gt;環境設定&lt;/h3&gt;&#10;&lt;p&gt;設定ファイルをあらかじめ作成します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;touch /etc/wireguard/wg0.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;600&lt;/span&gt; /etc/wireguard/wg0.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;設定ファイルにインターフェースを設定&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;サーバーキーを登録&lt;/li&gt;&#10;&lt;li&gt;SaveConfigが有効になっている場合、このファイルを編集した後にサーバーを停止すると、サーバーの状態で上書きされてしまいます&lt;/li&gt;&#10;&lt;li&gt;SaveConfigモードで使用する場合は、&lt;code&gt;wg set&lt;/code&gt;などで制御する必要があります&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# /etc/wireguard/wg0.conf&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;Interface&lt;span class="o"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;Address&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 10.200.0.1/24&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;ListenPort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;51820&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;PrivateKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;server key contents&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SaveConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="inbound設定ファイアウォール設定"&gt;Inbound設定(ファイアウォール設定)&lt;/h3&gt;&#10;&lt;p&gt;Peer to Peerではありますが、最初のハンドシェイクのためにUDPサーバーポートを開放しておく必要があります。&lt;/p&gt;&#10;&lt;p&gt;さらにiptablesを使用している場合は、ポートも開放する必要があります。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;iptables -I INPUT &lt;span class="m"&gt;1&lt;/span&gt; -p udp --dport &lt;span class="m"&gt;51820&lt;/span&gt; -j ACCEPT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ubuntu 24&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# netfilter-persistent save&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Result&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="サーバーの実行"&gt;サーバーの実行&lt;/h2&gt;&#10;&lt;p&gt;サービスの登録と起動&lt;/p&gt;</description></item></channel></rss>