「SSHで暗号化されてるからVPNは要らない」——開発者からよく聞く言葉だ。間違いではないが、正確でもない。
SSHは特定の接続を暗号化する。VPNはデバイスの通信全体を暗号化する。守る範囲が違う。カフェのWi-FiでSSHしている間も、npm installのパッケージダウンロード、ブラウザでのAPIドキュメント閲覧、Slackの通信は暗号トンネルの外を流れている。
この記事では、開発者がVPNを使うべき具体的な場面と、自前構築・商用VPN・Tailscaleの使い分けを解説する。
なぜ開発者にVPNが必要か
開発者のネットワークトラフィックには、一般ユーザーよりも機密性の高い情報が流れている。
- APIキーとアクセストークン — 環境変数に入れていてもHTTPリクエストのヘッダーには載る
- git push/pull — リポジトリ名やブランチ名からプロジェクト構成が推測できる
- パッケージダウンロード —
npm install、pip install、docker pullの通信先から技術スタックが丸見え - 内部ドキュメント — ConfluenceやNotionのURLからチーム構成や機能計画が漏れる
HTTPSが普及したとはいえ、DNSクエリ(どのドメインにアクセスしたか)はデフォルトでは暗号化されない。ISPやWi-Fiの管理者はあなたがどのサービスを使っているかを把握できる。
米国では2017年にISPがユーザーの閲覧履歴を本人の同意なく販売することを禁止するルールが撤廃された。ISPがDNSハイジャックで検索クエリを傍受し、広告会社に販売しているケースも報告されている。
VPNはこれらの通信をすべて暗号化トンネルに通し、第三者からの可視性をゼロにする。
開発現場の活用シーン
ジオロケーションテスト
CDNのエッジキャッシュ、i18nルーティング、地域限定コンテンツ——これらの動作確認にはリクエスト元の国を変える必要がある。VPNでサーバーの国を切り替えれば、ステージング環境を各リージョンに用意しなくても手元で確認できる。
# 日本のサーバーに接続してCDN動作を確認
nordvpn connect japan
curl -I https://your-cdn.example.com/api/content
パブリックWi-Fiでの開発作業
カフェ、空港、コワーキングスペース。公共Wi-Fiのリスクは「通信を盗み見られる」だけではない。
- Evil Twin攻撃 — 正規のWi-Fiと同名の偽アクセスポイントを設置し、通信を全てキャプチャする
- セッションハイジャック — 暗号化されていないCookieを傍受してログイン状態を乗っ取る
- DNSスプーフィング — 偽のDNS応答で正規サイトの代わりにフィッシングサイトに誘導する
SSHで接続しているサーバーは守られている。しかし、同時に開いているブラウザ、Slack、パッケージマネージャーの通信は無防備だ。VPNがあれば全てがトンネル内を通る。
地域制限のある開発ツール
GitHubは米国の制裁措置に基づき、イラン、シリア、クリミアからのアクセスを制限している。中国ではGreat Firewallの影響で接続が不安定になることがある。npmレジストリはGitHubでホストされたバイナリに依存するパッケージが多く、GitHubの制限はnpmにも波及する。
これらの国に出張する開発者や、現地のチームメンバーと協業する場合、VPNは実務上の必需品だ。
リモートワークのセキュリティ
企業VPN(社内リソースへのアクセス用)と個人VPN(ISPからのプライバシー保護用)は別物だ。
企業のノートPCで個人VPNを使うと、セキュリティポリシーに違反する可能性がある。逆に、個人デバイスで業務する場合は、自分の通信を保護するのは自分の責任だ。
SSHがあればVPNは不要?
開発者の間でよくある誤解を整理する。
SSHとVPNの違い
| SSH | VPN | |
|---|---|---|
| 保護範囲 | 特定の接続(1セッション) | デバイス全体の通信 |
| レイヤー | アプリケーション層 | ネットワーク層 |
| 用途 | リモートサーバーへのシェルアクセス | 全トラフィックの暗号化 |
| DNS保護 | なし | あり |
| ブラウザの通信 | 保護されない | 保護される |
SSHトンネル(ssh -DでSOCKSプロキシを作る方法)を使えば、特定のアプリケーションの通信をサーバー経由にできる。しかし、システム全体の通信を保護するにはVPNが必要だ。
併用が正解
実務では「SSHかVPNか」ではなく「SSHもVPNも」が正解だ。
- VPN — デバイスの全通信を暗号化し、公共ネットワークでの盗聴を防ぐ
- SSH — VPNトンネルの中で、さらに特定のサーバーへ安全に接続する
VPNは「道路全体を覆うトンネル」、SSHは「その中を走る装甲車」だと考えるとわかりやすい。
自前WireGuard vs 商用VPN vs Tailscale
開発者には3つの選択肢がある。それぞれ向いている場面が違う。
自前WireGuard
VPS(Hetzner、Vultr、さくらVPS等)にWireGuardをインストールして自分専用のVPNサーバーを構築する方法。
向いている場面:
- 自宅ネットワークやVPSへのリモートアクセス
- 専用IPが欲しい(共有IPのレート制限を回避)
- 通信データを第三者に預けたくない
注意点:
- サーバーの保守・更新は自己責任
- サーバーが1台なら地理的な多様性がない
- Kill Switch、DNS漏洩防止は自分で設定する必要がある
# WireGuardサーバーの構築例(Ubuntu)
sudo apt install wireguard
wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey
商用VPN(NordVPN等)
月額数百円で、100カ国以上のサーバー、Kill Switch、DNS漏洩防止、ポスト量子暗号化まで全部入り。
向いている場面:
- ジオロケーションテスト(多数の国のIPが必要)
- 公共Wi-Fiでの日常的な保護
- 設定に時間をかけたくない
注意点:
- 共有IPのため、APIのレート制限に引っかかる場合がある
- サービス提供者を信頼する必要がある(ノーログポリシーの監査実績を確認)
Tailscale
WireGuardベースのメッシュVPN。デバイス間を直接暗号化接続し、中央サーバーを経由しない。
向いている場面:
- 複数デバイス間のプライベートネットワーク構築
- 自宅サーバー・VPSへのNAT越えアクセス
- チーム開発でのリソース共有
注意点:
- 一般的な「VPN」とは異なり、パブリックIP の匿名化はしない
- 外部サイトへのアクセスを保護するには、Exit Nodeの設定が別途必要
- Tailscaleの制御プレーン(コーディネーションサーバー)を信頼する必要がある
3つの比較
| 自前WireGuard | 商用VPN | Tailscale | |
|---|---|---|---|
| 月額コスト | VPS代(~$5) | $3-8 | 無料~$5/user |
| サーバー数 | 自分のVPSのみ | 100カ国5,000+ | デバイス間メッシュ |
| 設定の手間 | 高い | ほぼゼロ | 低い |
| IP匿名化 | VPSのIP | 多数の出口IP | なし(Exit Node必要) |
| Kill Switch | 自分で構築 | 内蔵 | なし |
| NAT越え | ポート開放必要 | 不要 | 自動 |
開発者向けVPNサービス比較
商用VPNを検討する場合、開発者が重視すべきポイントは一般ユーザーとは異なる。
開発者が見るべき基準
- Linux CLIサポート — GUIだけでなくCLIで操作できるか
- WireGuard対応 — OpenVPNより高速で低レイテンシ
- ノーログ監査 — 第三者監査を受けているか
- 同時接続台数 — 開発機、テスト機、サーバーを同時に保護できるか
主要サービスの比較
| NordVPN | Mullvad | ProtonVPN | |
|---|---|---|---|
| 月額(年間払い) | ~$4.99 | €5.00(固定) | ~$3.99 |
| Linux CLI | あり(OSS) | あり | あり |
| プロトコル | NordLynx, OpenVPN | WireGuard, OpenVPN | WireGuard, OpenVPN |
| サーバー数 | 6,000+(111カ国) | 700+(49カ国) | 18,100+(129カ国) |
| ノーログ監査 | あり | あり(RAM-only) | あり(SOC 2) |
| 同時接続 | 10台 | 5台 | 10台 |
| PQ暗号化 | あり(ML-KEM) | なし | なし |
| メッシュ機能 | Meshnet | なし | なし |
| 無料プラン | なし(30日返金) | なし | あり(10拠点) |
NordVPN はLinux CLI・PQ暗号化・Meshnetで開発者向け機能が充実。サーバー数と地理的カバレッジのバランスが良い。
Mullvad はプライバシー特化。メールアドレス不要で契約でき、2023年のスウェーデン警察による家宅捜索でもユーザーデータがゼロだったことが証明されている。
ProtonVPN はサーバー数が圧倒的に多く、無料プランがある。まず試してみたい場合に向いている。
プロトコルの技術的な違いは「VPNプロトコル徹底比較」で解説している。NordVPNのLinux操作方法は「NordVPN Linux完全ガイド」を参照。
まとめ
開発者のVPN選びは「どれが一番いいか」ではなく「何を守りたいか」で決まる:
- 公共Wi-Fiでの日常作業 → 商用VPN(NordVPN、Mullvad等)
- 自宅ネットワーク・VPSへのリモートアクセス → Tailscale or 自前WireGuard
- ジオロケーションテスト → 商用VPN(多数の国のIPが必要)
- チーム間のリソース共有 → Tailscale
SSHだけでは不十分な場面がある。VPNはSSHの代替ではなく、補完するレイヤーだ。
自分のワークフローに合った組み合わせを選び、設定したら忘れて開発に集中する——それがVPNの正しい使い方だ。
関連記事:
- NordVPN完全レビュー:料金・安全性・速度を技術者が検証
- NordVPNの使い方:初期設定からトラブル対処まで
- NordVPNは危険?安全性を技術的に検証する
- VPNプロトコル徹底比較:WireGuard・OpenVPN・IKEv2の仕組みと選び方
- NordVPN Linux完全ガイド:CLI操作・PQ暗号化・Docker活用
- NordVPN・ExpressVPN・Surfshark比較
公式リソース:
- WireGuard — 公式サイト — 自前構築の技術仕様
- Tailscale — 公式サイト — メッシュVPNの仕組みと料金
- NordVPN Linux — Linuxクライアントのダウンロード