NordVPNのNordlynxプロトコル用にMacでMTUを調整する

目次

MacでもMTUを調整する

Windows版では以下のとおりMTUを設定することでNordVPNでNordlynxプロトコルを利用した場合の速度低下を防ぐことができました。

あわせて読みたい
【Windows版】NordVPNでNordLynxプロトコルを利用するとOpenVPNプロトコルに比べて著しく遅い NordLynxは高速とのことだが実測はなぜか遅かった NordVPNのサポートセンターによると、NordLynxは高速とのこと。 NordLynxは、WireGuard® VPNプロトコルを中心に構築さ...

MacではNordVPN用のTUN(OSが作る「仮想ネットワークインターフェース」でOSI第三層で動作)はutunとして実装されています。ターミナルで

ifconfig

コマンドを流すと、utun1,utun2,…のようにいくつか表示されます。

ifconfigコマンドで表示される結果には「Nordlynx」や「Nord」といった文字はないため、NordVPNをOffのときに実行したifconfigと、onのとき実行したifconfigの結果を見比べ手判断する必要があります。onのときに増えてた番号がNordVPNで使用しているutunとなります。

当方の環境ではutun6でした。

Windows版の設定でutunのMTU最適値は1390であることがわかっていますので、この設定をします。

sudo ifconfig utun6 mtu 1390

設定前後の結果

設定前設定後
50Mbps程度500Mbps程度

満足のいく結果となりました。

Macではutunの値は再起動するとデフォルトに戻される

設定は成功しましたが、Macにおいてutun設定は再起動すると初期値に戻る一時的なものです。初期値は1420のようです。

再起動時に自動でMTUを設定できるよう、

MacOSでメモリをバカ食いするdistnotedプロセスを自動で定期的に削除する

を参考にログイン時に自動設定するようにします。

STEP
/usr/local/bin/ にファイルを作成
#!/bin/zsh
sleep 30  # NordVPN接続を待つ
ifconfig utun6 mtu 1390

ファイル名は「nordvpn-mtu.sh」としました。当方の環境ではutunの番号は6なので、utun6に決め打ちした記述としました。

作成したファイルに実行権を付与します。

sudo chmod +x /usr/local/bin/nordvpn-mtu.sh
STEP
/Library/LaunchDaemons/ にファイルを作成
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.nordvpn.mtu</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/nordvpn-mtu.sh</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

ファイル名は「com.nordvpn.mtu.plist」としました。

STEP
所有権を変更
sudo chown root:wheel /Library/LaunchDaemons/com.nordvpn.mtu.plist

結果 うまくいくこともあればいかないこともある

当方の環境ではMacにログインするときに、NordVPNの接続待ちが続く場合が多く、手動でVPNをONしなければ正常に接続しないことが多いです。

nordvpn-mtu.shでは30秒だけsleepを入れていますが、ここまでにVPN接続が完了していないとutun6が作成されないので、MTUが1390に設定されません。その場合は手動でMTUを設定することになります。

また、utunはnordvpnをoff/onすると再度作成されるます。この場合またMTUはデフォルトの1420に戻ってしまい、速度が大幅低下します。

実運用としては、この問題を受けないOpen VPN(UDP)の方が扱いやすいです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次