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

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プロセスを自動で定期的に削除する
を参考にログイン時に自動設定するようにします。
#!/bin/zsh
sleep 30 # NordVPN接続を待つ
ifconfig utun6 mtu 1390ファイル名は「nordvpn-mtu.sh」としました。当方の環境ではutunの番号は6なので、utun6に決め打ちした記述としました。
作成したファイルに実行権を付与します。
sudo chmod +x /usr/local/bin/nordvpn-mtu.sh<?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」としました。
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)の方が扱いやすいです。

