概要
macOS CatalinaやBig SurでゲートウェイがVPNにならないことがある
別の環境では上手くいっていた場合の、問題解決に向けた記事
いつの間にか、ネットワークのサービスの優先順位が有効になった可能性がある
環境
- macOS Catalina 10.15.7(19H2)
- 問題が発生
- macOS Catalina 10.15.5
- 問題なし
※ 厳密にはOSのバージョンが起因ではない可能性があります。
VPN設定
VPNを利用していれば、大抵の場合接続元ホストがVPNサーバになるはずなので、
確認くんなどで自分のリモートホストを確認します。
ここで想定しているホストになっている場合は、この記事の問題は関係ありません。
ホストが違う場合
想定しているホストになっていない場合、以下を確認します。
システム環境設定 >> ネットワーク
「すべてのトラフィックをVPN接続経由で送信」にチェックが入っていることを確認します。
ここにチェックがないと、VPNを経由せずデータが送信されることがあります。
それでも解決しない場合
2時間くらい試行錯誤した結果、サービスの順序が優先度に関係ありそうということが分かりました。
Wi-Fi、Bluetooth PANなど並んでいる場所の下にある設定アイコンから「サービスの順序を設定」を選択します。
いつも利用しているサービスWiFi
より上にVPNを移動させます。
先頭にVPNがきました
これで確認くんのリモートホストが変更されました!
(´-`).。oO (前のOSだと順序関係なく接続できたのに...)
発端
余談、読み物です。
マシン移行後、VPN経由でサーバにssh接続しようとしたらレスポンスが返ってこない...ということが発端でした。
そもそも、タイムアウトが75秒だったようで、エラーメッセージに気付きませんでした。
ssh hoge -vで詳細を出したり、config名を使わずに接続したり、id_rsaのパーミッションを確認したり無駄な時間を過ごしました。
ちなみに-vオプションは以下のようなdebug情報が表示されます。
ssh user@x.x.x.x -i ~/.ssh/id_rsa -p 22 -v
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/user/.ssh/config
debug1: /Users/user/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port .
debug1: connect to address x.x.x.x port 22: Operation timed out
ssh: connect to host x.x.x.x port 22: Operation timed out
タイムアウトということが分かってからは、原因の想定をつけやすくて助かりました。