NordVPNはWindows・macOS向けのイメージが強いが、Linux向けのCLIクライアントも充実している。2024年にはLinuxが全プラットフォームで最初にポスト量子暗号化(PQ)に対応し、2025年にはGUIアプリのソースコードがGPLv3でオープンソース化された。
この記事では、NordVPNのLinuxクライアントをインストールしてCLI操作する方法を解説する。Kill Switch、Allowlist、PQ暗号化、Docker連携まで、開発者がLinux環境で実際に使う機能を一通りカバーする。
インストールと初期設定
インストール
公式のインストールスクリプトを使う。curlまたはwgetのどちらでもいい。
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)
Snapを使う場合はこちら。
sudo snap install nordvpn
Snapパッケージにはv4.2.0以降GUIも含まれている。CLIだけで十分ならどちらの方法でも同じだ。
インストール後の設定
インストール直後は権限の設定が必要だ。これをしないとnordvpn connectがPermission deniedで失敗する。
sudo usermod -aG nordvpn $USER
グループの変更を反映するためにログアウト→ログイン(またはreboot)する。
ログイン
デスクトップ環境がある場合はブラウザ認証が使える。
nordvpn login
ブラウザが開いてNordVPNのログインページが表示される。認証が完了するとCLIに戻る。
ヘッドレスサーバー(VPSなど)ではブラウザが使えない。その場合はトークン認証を使う。
nordvpn login --token YOUR_TOKEN
トークンはNordVPNのWebダッシュボード(my.nordaccount.com)から「Access Token」で発行できる。
接続テスト
nordvpn connect
最速のサーバーに自動接続される。接続状態はnordvpn statusで確認できる。
nordvpn status
出力例:
Status: Connected
Hostname: jp123.nordvpn.com
IP: 203.0.113.45
Country: Japan
City: Tokyo
Current technology: NordLynx
Transfer: 1.2 MiB received, 0.5 MiB sent
Uptime: 5 minutes 32 seconds
CLIコマンドリファレンス
NordVPN LinuxはすべてCLIで操作する。よく使うコマンドを一覧にまとめた。
接続・切断
nordvpn connect # 最速サーバーへ接続(短縮: nordvpn c)
nordvpn connect japan # 国指定
nordvpn connect japan tokyo # 国+都市指定
nordvpn connect us new_york # 国名はスネークケース
nordvpn disconnect # 切断(短縮: nordvpn d)
nordvpn status # 接続状態
サーバーグループ
NordVPNにはP2P最適化サーバーやDouble VPNなど、用途別のサーバーグループがある。
nordvpn groups # 利用可能なグループ一覧
nordvpn connect p2p # P2P最適化サーバー
nordvpn connect double_vpn # 二重暗号化
nordvpn connect onion_over_vpn # Tor経由
サーバー情報
nordvpn countries # 対応国一覧
nordvpn cities japan # 国内の都市一覧
設定の確認・変更
nordvpn settings # 現在の全設定を表示
nordvpn set technology nordlynx # プロトコル変更
nordvpn set autoconnect on # 自動接続
nordvpn set autoconnect on japan # 自動接続先を指定
nordvpn set dns 1.1.1.1 1.0.0.1 # カスタムDNS
nordvpn set dns off # デフォルトDNSに戻す
アカウント
nordvpn account # アカウント情報
nordvpn logout # ログアウト
nordvpn --version # バージョン確認
NordLynxとプロトコル選択
NordVPN LinuxではNordLynx(WireGuardベース)がデフォルトプロトコルだ。ほとんどの場合はこれで十分だが、ネットワーク環境によってはOpenVPNに切り替えるべき場面がある。
プロトコルの切り替え
nordvpn set technology nordlynx # NordLynx(WireGuard)
nordvpn set technology openvpn # OpenVPN
OpenVPNを選んだ場合は、さらにUDP/TCPを指定できる。
nordvpn set protocol udp # OpenVPN UDP(デフォルト)
nordvpn set protocol tcp # OpenVPN TCP
どのプロトコルを選ぶか
| 状況 | プロトコル | 理由 |
|---|---|---|
| 通常利用 | NordLynx | 最速、最低レイテンシ |
| UDPがブロックされている | OpenVPN TCP | TCPフォールバック |
| 制限の厳しいネットワーク | OpenVPN + 難読化 | DPI回避 |
| PQ暗号化を使いたい | NordLynx | PQはNordLynx専用 |
OpenVPNで難読化を有効にするコマンド:
nordvpn set technology openvpn
nordvpn set obfuscate on
プロトコルの技術的な違いについては「VPNプロトコル徹底比較」で詳しく解説している。
Kill SwitchとAllowlist
Kill Switch
Kill Switchは、VPN接続が切れたときにすべてのインターネットアクセスをブロックする安全装置だ。Linux版ではiptablesルールで実装されている。
nordvpn set killswitch on
これを有効にすると、VPNが切断された瞬間にネットワーク通信が遮断される。意図しないIP漏洩を防ぐために、常時VPNを使う環境では有効にしておくべきだ。
無効にする場合:
nordvpn set killswitch off
Allowlist(旧Whitelist)
Kill Switchを有効にしていても、特定のポートやサブネットだけはVPNを通さずに直接通信したい場合がある。開発中のローカルサーバー(localhost:3000)やSSH接続がその典型だ。
nordvpn allowlist add port 22 # SSH
nordvpn allowlist add port 3000 protocol TCP # 開発サーバー
nordvpn allowlist add subnet 192.168.1.0/24 # LAN全体
設定の確認と削除:
nordvpn settings # allowlist含む全設定表示
nordvpn allowlist remove port 22 # 個別削除
nordvpn allowlist remove all # 全削除
LAN内デバイスへのアクセス
Kill Switchを有効にすると、同じLAN内のプリンターやNASにもアクセスできなくなる。LAN内通信を許可するには:
nordvpn set lan-discovery on
ポスト量子暗号(PQ)を有効にする
なぜPQ暗号化が必要か
現在のVPN暗号化は「いま」は安全だ。しかし、量子コンピュータが実用化されれば、現行の暗号アルゴリズム(RSA、楕円曲線暗号)は解読される可能性がある。
攻撃者が「今のうちに暗号化データを保存しておき、量子コンピュータが利用可能になったら解読する」という Harvest Now, Decrypt Later 攻撃が現実的な脅威になりつつある。
NordVPNのPQ暗号化は、NordLynxのハンドシェイクにML-KEM(旧CRYSTALS-Kyber)アルゴリズムを追加し、量子コンピュータに対する耐性を持たせる。Linuxは2024年9月に全プラットフォーム中最初にこの機能を実装した。
有効化
nordvpn set pq on
これだけだ。次回の接続からPQ暗号化が適用される。
PQ暗号化はNordLynx(WireGuard)でのみ動作する。OpenVPNに設定していると以下のエラーが出る:
Post-quantum encryption is unavailable with OpenVPN.
Switch to NordLynx to activate post-quantum protection.
確認方法
PQ暗号化が有効かどうかはnordvpn settingsで確認できる。
nordvpn settings
出力にPost-quantum VPN: enabledが含まれていればOKだ。
パフォーマンスへの影響はほぼない。ハンドシェイク時に追加の鍵交換が発生するが、接続後のスループットはPQなしと同等だ。特別な理由がなければ有効にしておくことを推奨する。
DockerコンテナでNordVPNを使う
開発環境やセルフホストサービスの通信をVPN経由にしたい場合、DockerコンテナでNordVPNを動かす方法がある。
公式Docker イメージをビルドする
NordVPNは公式のDocker構築手順を提供している。
基本的な流れ:
docker build -t nordvpn-client .
コンテナの起動にはNET_ADMIN権限が必須だ:
docker run -it \
--cap-add=NET_ADMIN \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--name vpn \
nordvpn-client
コンテナ内でトークンログイン:
nordvpn login --token YOUR_TOKEN
nordvpn connect
他のコンテナの通信をVPN経由にする
NordVPNコンテナをネットワークゲートウェイとして使い、他のコンテナの通信をすべてVPN経由にできる。
docker run -it \
--net=container:vpn \
curlimages/curl curl ifconfig.me
--net=container:vpnで、VPNコンテナのネットワークスタックを共有する。この方法ならアプリケーション側にVPN設定は一切不要だ。
gluetunを使う方法
自分でDockerイメージをビルドするのが面倒なら、gluetunが便利だ。NordVPNを含む多数のVPNプロバイダに対応した軽量VPNクライアントコンテナで、Kill Switch内蔵、環境変数だけで設定できる。
services:
gluetun:
image: qmcgaw/gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- VPN_TYPE=openvpn
- OPENVPN_USER=your_service_username
- OPENVPN_PASSWORD=your_service_password
- SERVER_COUNTRIES=Japan
ports:
- "8080:8080"
app:
image: your-app
network_mode: "service:gluetun"
NordVPNのサービス認証情報(メールアドレスではない)は手動設定ページから取得する。
まとめ
NordVPN Linuxクライアントの主要機能を振り返る:
- インストール: ワンライナーで完了。ヘッドレス環境ではトークン認証
- プロトコル: NordLynx(WireGuard)がデフォルト。制限ネットワークではOpenVPN TCPに切替
- Kill Switch + Allowlist: 開発ポートやLANを除外しつつIP漏洩を防ぐ
- PQ暗号化:
nordvpn set pq onの1コマンドで量子耐性を追加。Linux限定で全プラットフォーム最速対応 - Docker: コンテナのネットワークを丸ごとVPN経由にできる
LinuxでVPNを使うなら、GUIは必要ない。CLIのほうが自動化もスクリプト化もしやすい。
VPNプロトコルの技術的な違いが気になる方は「VPNプロトコル徹底比較:WireGuard・OpenVPN・IKEv2の仕組みと選び方」も参考にしてほしい。
関連記事:
- NordVPN完全レビュー:料金・安全性・速度を技術者が検証
- NordVPNの使い方:初期設定からトラブル対処まで
- NordVPNは危険?安全性を技術的に検証する
- VPNプロトコル徹底比較:WireGuard・OpenVPN・IKEv2の仕組みと選び方
- 開発者のVPN活用ガイド:SSH・WireGuard・商用VPNの使い分け
- NordVPN・ExpressVPN・Surfshark比較
公式リソース:
- NordVPN Linux ダウンロード — インストール手順
- NordVPN Linux GitHub — ソースコードとリリースノート
- NordVPN PQ暗号化 — ポスト量子暗号化の技術解説