自宅NASや社内サーバーに外から安全につなぐ方法【Tailscale / WireGuard】
本記事はアフィリエイト広告(A8.net)を含みます。価格・仕様は2026年6月時点の目安です。最新は各公式サイトでご確認ください。
TL;DR
- 自宅NASや社内サーバーをインターネットに直接公開(ポート開放)するのは避ける。 公開した瞬間から世界中の自動スキャンと総当たり攻撃の対象になります。
- 外からのアクセスはVPNで暗号化トンネルを張るのが基本。 設定を自分で全部管理したいなら WireGuard、NAT越えやデバイス追加の手間を省きたいなら Tailscale が現実的な選択肢です。
- Tailscaleは個人なら無料で使えます。 クレジットカードの登録も不要で、端末100台まで無料枠があります。
- NordVPN等の市販VPNとは用途が別物。 あれは「通信の匿名化・地域制限回避」向けで、自宅・社内サーバーへの到達手段にはなりません。
なぜポート開放が危険なのか
自宅や社内のサーバーに外からアクセスしたいとき、手っ取り早く見えるのがルーターのポート開放(ポートフォワーディング)です。
「ポート開放」って何? ルーターは家のネットワークと外部インターネットの間に立つ「門番」で、普段は外からの通信を遮断しています。ポート開放とは、特定の番号(ポート番号)の通信だけ「ここは通っていい」と門番に例外を設ける作業です。SSHの22番やNASの管理画面(例:5000番)をグローバルIPに紐づければ、確かに外からつながります。
問題は、「外からつながる」は攻撃者にとっても「外からつながる」を意味することです。
- 公開直後からスキャンされます。 インターネット上には常時ポートスキャンを行うボットが存在し、新たに開いた22番や3389番(RDP)は数分〜数時間で発見されます。
- 総当たり攻撃の標的になります。 SSHを公開すると、
rootやadminを狙ったパスワード総当たりログイン試行が継続的に飛んできます。 - 脆弱性が即悪用されます。 NASやルーターのWeb管理画面に既知の脆弱性があると、パッチを当てる前に侵入される恐れがあります。家庭用・小規模向け機器は更新が遅れがちです。
- 1ポートの開放が内部全体への入口になります。 踏み台にされると、同一LAN内の他の機器まで危険にさらされます。
ポート開放が絶対にできない選択肢というわけではありませんが、公開するサービスを最小限にし、直接公開をできる限り避けるのが原則です。サーバー個別の締め方は VPS初期セキュリティ設定チェックリスト を参照してください。
外部アクセスの選択肢を整理する
自宅・社内サーバーへ外から届く方法は、大きく3つに分かれます。
| 方式 | 仕組み | 向くケース | 注意点 |
|---|---|---|---|
| リバースプロキシ公開 | NginxやCloudflare Tunnel経由でHTTPSサービスを公開 | 不特定多数に見せるWebサービス | Web(HTTP)以外に弱い。公開範囲の管理が必要 |
| VPN(WireGuard等) | 端末とサーバー間に暗号化トンネルを張る | 自分・社内メンバーだけが使う | サーバー側の設定・鍵管理が必要 |
| メッシュVPN(Tailscale等) | 各端末同士をWireGuardで直結 | 複数拠点・複数端末を手軽につなぐ | 制御プレーンを外部サービスに委ねる |
Webサービスを世界に公開したいならリバースプロキシ(Cloudflare Tunnel等)が向きます。一方、SSH・NAS・社内管理画面のように、自分や社内の人だけが使えればよいものは、そもそも公開せずVPNの内側に置くのが安全です。本記事は後者、VPNとメッシュVPNを扱います。
市販VPN(NordVPN等)との違い
設計を誤らないために、最初に整理しておきます。NordVPN・ExpressVPNといった市販の「VPNサービス」と、本記事のWireGuard/Tailscaleは目的が別物です。
| 市販VPN(NordVPN等) | WireGuard / Tailscale | |
|---|---|---|
| 主な目的 | 通信の匿名化・地域制限回避・公衆Wi-Fiの保護 | 自分の自宅・社内サーバーへ到達する |
| 接続先 | VPN事業者の出口サーバー | 自分が持つNAS・サーバー・端末 |
| 自宅NASに届くか | 届かない(経路が事業者側へ向く) | 届く(これが目的) |
市販VPNは「あなたの通信を事業者のサーバー経由でインターネットに出す」サービスです。一方WireGuard/Tailscaleは「あなたの端末をあなたのネットワークの内側に置く」仕組みです。自宅NASにアクセスしたくてNordVPNを契約しても、その用途には使えません。
WireGuardの基本
「VPN」って何? 端末とサーバーの間に作る、暗号化された専用通信路のことです。一般道(インターネット)の中に、自分だけが使える暗号化されたトンネルを掘るイメージです。外から見ると「何かが流れている」程度しかわかりません。
WireGuard は、Linuxカーネルに組み込まれた軽量なVPNプロトコルです。OpenVPNやIPsecと比べてコードベースが小さく、設定が簡潔で高速という特徴があります。
仕組みのポイント
- 公開鍵暗号で認証します。 各ピア(端末・サーバー)が秘密鍵と公開鍵のペアを持ち、相手の公開鍵を登録し合うことでトンネルを確立します。ユーザー名・パスワードは使いません。
- UDPで通信します。 既定では1つのUDPポート(慣習的に51820番)で待ち受けます。
- 設定が宣言的です。 接続相手(Peer)と許可する経路(AllowedIPs)を設定ファイルに書くだけで、状態を持たないシンプルな構成になります。
鍵の生成
# サーバー側・クライアント側それぞれで実行
wg genkey | tee privatekey | wg pubkey > publickey
privatekey が秘密鍵、publickey が公開鍵です。秘密鍵は外部に出さず、公開鍵だけを相手に渡します。
サーバー側の設定例
/etc/wireguard/wg0.conf:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <サーバーの秘密鍵>
[Peer]
# クライアント1台目
PublicKey = <クライアントの公開鍵>
AllowedIPs = 10.0.0.2/32
クライアント側の設定例
[Interface]
Address = 10.0.0.2/24
PrivateKey = <クライアントの秘密鍵>
[Peer]
PublicKey = <サーバーの公開鍵>
Endpoint = <サーバーのグローバルIP>:51820
AllowedIPs = 10.0.0.0/24 # VPN内のネットワークだけをトンネルへ流す
PersistentKeepalive = 25 # NAT環境で接続を維持する
起動と確認
# サーバー・クライアント双方で
wg-quick up wg0
# 状態確認
wg show
確立後は、サーバーをVPN内アドレス(例:10.0.0.1)でSSH接続できます。この構成ではSSHの22番をグローバルに公開する必要がなく、開けるのはWireGuardのUDP 51820番だけになります。攻撃者から見ると、正しい鍵を持たない限り応答すら返らないため、スキャンに対して静かなのが利点です。
WireGuardの弱点は、ピアが増えると鍵と経路の管理が煩雑になる点と、少なくとも一方がグローバルに到達可能な固定IPを持つ必要がある(あるいはNAT越えを自前で工夫する必要がある)点です。これを自動化したのが次のTailscaleです。
「NAT越え」って何? 家庭用のルーターは「NAT(ネットワークアドレス変換)」という仕組みを使っていて、家の中の複数台を1つのグローバルIPで外とつながせています。この構造のせいで、外部から家の内側にある特定の端末へ直接つなごうとすると、NAT(門番)に弾かれてしまいます。これを「NAT越え」と呼びます。WireGuardだけでは自前での解決策が必要ですが、Tailscaleはこれを自動でこなします。
Tailscaleの基本
「Tailscaleって別サービス?お金かかる?」 Tailscaleは独立したSaaS(クラウドサービス)です。個人利用は無料で、クレジットカードの登録も不要。端末100台まで無料枠があります(2026年6月時点)。アカウント作成にはGoogleやGitHubアカウントが使えます。
Tailscale は、WireGuardをデータプレーンに採用したメッシュVPNサービスです。
「メッシュVPN」って何? 通常のVPNは「端末→集約サーバー→別の端末」という一点経由の構造です。メッシュVPNは「端末同士が直接つながる」構造で、中心となる固定サーバーが要りません。Tailscaleの場合、同じアカウントでログインした端末同士が自動的に直結します。
WireGuardとの違い
- 鍵交換が自動です。 各デバイスをアカウント(Googleアカウント等)でログインさせるだけで、鍵の生成・配布・経路設定をTailscaleの制御プレーン(コーディネーションサーバー)が裏で行います。
- NAT越えを自動でこなします。 双方がNAT内にあっても、UDPホールパンチングで直接接続を試みます。直結できない場合はDERP(中継サーバー)経由でフォールバックしますが、この場合も通信はWireGuardで暗号化されたままです。
- メッシュ構造のため、固定IPやポート開放が不要です。 全デバイスが相互に直結する仮想ネットワーク(tailnet)を形成します。
導入手順
# Linux サーバー / クライアント共通(Debian/Ubuntu)
curl -fsSL https://tailscale.com/install.sh | sh
# 起動してログイン(表示されるURLをブラウザで開いて認証)
sudo tailscale up
ログインが完了すると、各デバイスに 100.x.y.z 形式のTailscale IP(CGNAT帯)が割り当てられます。tailscale status で同じtailnet内のデバイス一覧を確認でき、そのIPで直接SSHやサービスへアクセスできます。
tailscale status
ssh [email protected] # tailnet内の別デバイスへ
ACL(アクセス制御)
「ACL」って何? アクセスコントロールリスト(Access Control List)の略で、「誰がどこに接続できるか」を定義するルールリストです。Tailscaleの管理コンソールでJSON形式で書きます。
既定では同一tailnet内は相互に到達可能ですが、ACLで最小権限に絞り込むのが推奨されます。
{
"acls": [
{ "action": "accept", "src": ["group:admin"], "dst": ["tag:server:22"] }
]
}
上の例は「adminグループの端末だけが、serverタグの付いたデバイスの22番(SSH)に接続できる」という制御です。ポート開放と違い、到達できる相手を明示的に許可した範囲に限定できます。
Tailscaleの注意点は、制御プレーンを外部サービスに委ねることです(データ通信自体は端末間で暗号化されますが、デバイス認証と経路調整はTailscale社のサーバーが担います)。これを自前で持ちたい場合は、互換のコーディネーションサーバー実装である Headscale をセルフホストする選択肢もあります。
WireGuardとTailscale、どちらを選ぶか
結論を言い切ります。手軽さを優先するなら Tailscale 一択です。
| 観点 | WireGuard(素) | Tailscale |
|---|---|---|
| 制御プレーン | 自前(完全に手元) | Tailscale社(または自前のHeadscale) |
| 鍵・経路管理 | 手動 | 自動 |
| NAT越え | 自前で工夫が必要 | 自動(ホールパンチング+DERP中継) |
| デバイス追加 | 設定ファイル編集 | ログインのみ |
| アクセス制御 | AllowedIPs/別途ファイアウォール | ACL(コンソールで宣言的に) |
| 向くケース | 構成を完全に把握・管理したい | 手早く複数端末をつなぎたい |
判断基準はシンプルです。
- 自前ですべて管理したい・外部サービスに依存したくない → WireGuard。VPSに集約サーバーを1台立て、各端末をピアとして登録します。
- 手軽さ・NAT越え・端末追加のしやすさを優先する → Tailscale。出張先・自宅・社内を素早くつなぎたい個人や小規模チームに向きます。
- 両方の良いとこ取りをしたい → Headscale(自前コーディネーションサーバー)+Tailscaleクライアント。運用の手間は増えます。
踏み台(最小権限)の考え方
VPNを張っても、その先のサーバーに無防備にログインできるなら片手落ちです。VPNは「内側に入る経路」を守る仕組みであって、内側に入った後の権限は別途締める必要があります。
- 直接rootログインを禁止する。 一般ユーザーでログインし、必要時のみ
sudoに昇格します。 - 公開鍵認証に統一し、パスワード認証を無効化する。 VPN内であっても鍵認証を前提にします。
- 踏み台(bastion)を1台に集約する。 内部の各サーバーへは踏み台経由でしか入れない構成にすると、監査ログが1点に集まり、権限管理も単純化します。
- 接続元をACL/ファイアウォールで絞る。 Tailscaleなら前述のACL、WireGuardなら
AllowedIPsとサーバー側のファイアウォールで「どのVPN内アドレスからSSHを許すか」を限定します。
サーバー個別の締め方(SSH設定・ファイアウォール・自動更新など)は VPS初期セキュリティ設定チェックリスト に手順をまとめています。自宅サーバーを構築する全体像は 自宅サーバー・ホームラボ入門 を参照してください。
まとめ
| 項目 | ポート開放 | WireGuard | Tailscale |
|---|---|---|---|
| 安全性 | 低(直接公開) | 高(鍵認証トンネル) | 高(WireGuardベース) |
| 公開するポート | 対象サービスのポート | UDP 1ポートのみ | 原則なし |
| NAT越え | ルーター設定が必要 | 自前で工夫 | 自動 |
| 管理の手間 | 小(だが危険) | 中 | 小 |
| 外部依存 | なし | なし | あり(制御プレーン) |
| 向くケース | 推奨しない | 自前管理・固定構成 | 手軽さ・複数端末 |
自宅・社内サーバーへの外部アクセスは、ポート開放ではなくVPNの内側に置くのが基本方針です。すべてを手元で管理したいならWireGuard、運用の手間を減らしたいならTailscale。どちらを選んでも、接続先のサーバー自体を締める作業(鍵認証・最小権限・踏み台集約)は省略できません。
接続先となるサーバーをこれから用意するなら、固定のグローバルIPを持ち24時間稼働するVPSが、WireGuardの集約サーバーや踏み台として扱いやすい選択肢になります。
各サービス公式
VPNの接続先・踏み台サーバーとして使えるVPSの公式情報です。
WireGuard・Tailscale・Headscaleの仕様は、各公式ドキュメント(WireGuard / Tailscale / Headscale)で最新を確認してください。