NordVPNにWireGuardクライアントから接続する

NordVPNについて

私は普段からNordVPNに繋いでインターネットを利用することが多いです。
理由としては、利用しているISPのBGPでのルーティングが下手で、VPNに繋いだほうがレイテンシ・スループットの面で改善することが多いからです。

後述の理由であまりNordVPNは利用したくないのですが、サーバ数やサーバの帯域の余裕的にNordVPNが一番の選択肢となります。

NordVPNのサーバについて

日本国内でNordVPNが利用している回線の提供元は複数存在します。
すべて試しましたが、ルーティングの上手さが異なります。またバックボーンの太さ的にも差があります。
そのため、特定の提供元を選んで利用したいです。

しかし、NordVPN公式のクライアントから接続するとサーバを選択することができません。
NordVPNの公式クライアントから接続する際はNordLynxと表示されます。サーバリストを見ると、services wireguard_udpとなっており、WireGuardクライアントから接続することが可能です。

NordVPNが利用するサーバについて

NordVPNは国内で以下の回線を利用しています。(2025/09/28現在)
・Global Secure Layer
・Datacamp
・M247
・Hydra Communications
・(PacketHub)

大阪についてはPacketHubのサーバのみです。JPNAP Osakaに20Gbpsで接続、UpstreamはGINとPCCW Globalです。

東京にもPacketHubのサーバはありますが、Upstreamが上記4つのプロバイダのどこかです。

M247とHydra Communicationsについては、国際的なバックボーンを保有していることを確認できていません。
UpstreamのTier1とIXに頼っており、私の用途ではあまり速度がでません。

Datacampは前までHot-Potato routingでしたが、最近はバックボーンを拡充し、そこに流しているのを確認しています。しかし、CDNが本業であるため、そこまでCold-Potato routingな感じもしません。どちらかというと、CDNのOriginからユーザ近くのEdgeまで運ぶためがメインでしょう。
CDNがバックボーンを確保することについては賛否があると理解しています。
DatacampのCDNのように、映像が多い場合は有効なのかもしれません。
とはいえ、CDNであるためIXとの接続は非常に十分であり、国際的な通信をメインとしない場合は良い選択肢となります。

今のところ一番気に入っているプロバイダはGlobal Secure Layerです。
国際的なバックボーンが充実しており、体感的にはかなりCold-Potato routingです。
世界中の多くのIXに接続しており、経路があった場合はGlobal Secure Layerのバックボーンを通りRoutingされます。
最近は複数の多くの帯域が必要なサービスのホスティングにも利用されています。
またLooking Glassを提供しているのも評価が高いです。
https://lg.gsl.tools/

WireGuard Clientで接続するために必要なデータの抽出

WireGuard Clientから接続するためには以下が必要です。
・Private key
・Peer先のPublic Key
・Peer先のIP

他のパラメータについては各サーバで共通です。

まずはPrivate Keyを取ります。
よく紹介されている方法は一旦公式のクライアントで接続する方法です。
今回はアクセストークンを利用します。

まず以下のURLにアクセスし、「新しいトークンを生成」をクリックします。
https://my.nordaccount.com/ja/dashboard/nordvpn/access-tokens/

生成されたトークンを利用し、以下のコマンドを叩きます。

curl -s -u token:<アクセストークン>https://api.nordvpn.com/v1/users/services/credentials | jq .

返答に含まれている、nordlynx_private_keyをコピーします。

続いて、接続先のPublic Key、サーバのIPを取得します。
以下のコマンドで取得しましょう。

curl -s "https://api.nordvpn.com/v1/servers/recommendations?&filters\[servers_technologies\]\[identifier\]=wireguard_udp&limit=10"|jq -r '.[]|.hostname, .station, (.locations|.[]|.country|.city.name
), (.locations|.[]|.country|.name), (.technologies|.[].metadata|.[].value), .load'

適当にjqで整形してください。

stationまたはhostnameが接続先のIP、name: Wireguard, identifier: wireguard_udpのpivotにPublic Keyがあります。

これらがあれば接続が可能です。
WireguardのConfigは以下のようになります。

[Interface]
PrivateKey = <nordlynx_private_key>
Address = 10.5.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = <接続先サーバのPublicKey>
AllowedIPs = 0.0.0.0/0
Endpoint = <接続先サーバのhost name>:51820
PersistentKeepalive = 15

接続できない場合 (Windows)

私はNordVPNの公式クライアントを入れていました。
NordVPNは誰でもどのサーバにアクセスするときでも、接続者側のIPアドレスが同じです。
NordVPN 公式クライアントのInterfaceは接続していないときでも有効のため、IPアドレスが重複してしまい接続が行えませんでした。

NordVPNのInterfaceを無効にすることで接続が可能になりました。

最近あまりNordVPNを使いたくない理由

NordVPNに接続しているときに、google.comを解決すると192.0.0.88に解決されます。
調べると、以下のissueが見つかります。
https://github.com/NordSecurity/nordvpn-linux/issues/551

ポイントは以下の記載です。
https://github.com/NordSecurity/nordvpn-linux/issues/551#issuecomment-2315274583

GoogleのカスタムIPについて:これらのローカルIPは、シームレスで途切れることのないブラウジング体験を提供するための社内ソリューションの一部として使用しています。これらのIPアドレスは、特定のトラフィックを、当該ウェブサイトに最適な品質のエンドポイントにプロキシするために使用され、トラフィックの内容は100%安全かつ暗号化され、追跡されず、当社のエンジニアにも知られることなく保護されます。

curl エラーについて:ソリューションの有効性と信頼性を確保するため、ボットやスクレーパーを阻止するために特別に設計された自動不正防止メカニズムを実装しました。このメカニズムは、トラフィックの信頼性を高めるだけでなく、エンドポイントへの過度の高速接続によって発生する可能性のあるサーバーエラーの防止にも役立ちます。お客様に表示されたエラーは、このメカニズムの作動によるものです。具体的には、SSL エラーは、人間以外のトラフィックを示すパターンによりサーバーが接続を拒否した際に発生しますが、通常の SSL レスポンスを期待するクライアントは、この情報の欠如をエラーと解釈します。通常のブラウジングでは、この問題は発生しません。

NordVPNはノーログVPNであるため、接続者の通信内容を判別し、AbuseをBanすることはできません。
GoogleなどのサービスはSpamがあったIPについては、Capchaなどのチャレンジを課したり、アクセスを拒否したりします。
NordVPNは多くのユーザでIPを共有しているため、Abuseなユーザがいた場合、多くのユーザに影響が出てしまいます。
そのため、エンドポイントをプロキシし、Rate Limitをしているようです。

ただ、このLimitがかなり低いように感じています。
通常に利用しているときでも、ブラウザからGoogleにアクセスが行えないときがあります。

NordVPNを信用しているわけではありませんが、TLSがあるから別に使用してもいいかという意見でした。

トラフィックの内容は100%安全かつ暗号化され、追跡されず、当社のエンジニアにも知られることなく保護されます。

のように言っていますが、中間者攻撃と変わらないかと思います。もしサーバが侵害された場合、情報を抜き取ることは大いに可能であると思います。

これの問題は、侵害によるものか判別できないことです。
そして、こういったことを行っていることをユーザにもっと周知するべきかと思います。

最後に

この記事に書いてある内容について何らかのご意見やご要望がある方は以下のメールアドレスまでご連絡ください
[email protected]

タイトルとURLをコピーしました