2019年12月07日

snap + ExpressVPN で名前解決できない問題への対処法

snap (snappy) でインストールした chromium が、VPN利用中にドメイン名を解決できない。問い合わせて5日くらいかけてやり取りして解決したのでメモ。

問題

条件:

  • ExpressVPN のクライアントアプリ (expressvpn コマンドが使える .deb パッケージ) を使っている
  • snap install でブラウザ(firefox でもなんでも)をインストールしている
  • または apt 経由で chromium-browser をインストールしていたが Ubuntu 19.10 以上にアップグレードした

VPN に接続した状態で適当なサイトにつなごうとすると「サーバーが見つかりません」などのエラーになる。chromium の方が少し親切でエラーコードが表示される。ただし細かな対処法は検索しても出てこない。Express VPN の force_vpn_dns の設定によってコードが変わる。

  • false - DNS_PROBE_FINISHED_BAD_CONFIG
  • true - DNS_PROBE_FINISHED_NO_INTERNET

https://1.1.1.1/ のように名前解決しなくていいサイトにはつながる。さらに .deb パッケージの方はなんの問題もないのでネットワークの一時的な問題や設定の根本的な間違いというわけでもない。

対処法

expressvpn コマンドを使うのをやめて手動でセットアップする。

ヘルプ How to set up Linux OpenVPN または How to set up ExpressVPN OpenVPN using Ubuntu Network Manager に従う。

大筋としては必要なパッケージ入れて、ExpressVPN のマイページから .ovpn ファイルを落として、openvpn の CLI なり Network Manager の画面なりから設定して接続すれば完了。

やっぱり snap は人類には早すぎる…。

デメリット

  • スリープから起きた時やネットワーク瞬断後の自動接続がうまくいかないときがある
  • VPN 接続に失敗したときのネットワーク遮断機能がない
  • 接続状況の確認や接続先変更に便利なブラウザのアドオンが使えない。システムトレイアイコンがない Linux 版ではかなり重要。(openvpn なら NM がトレイに待機してるけど)

お漏らしが怖いのでやっぱりクライアント使うかな。

試したトラブルシューティング

snap での局所的な問題というのを理解してもらうまでやたらと時間がかかった。

  • VPN 接続解除時には問題が出ないことを確認
  • VPN のサーバー(Location)を変更
  • プロトコル(tcp/udp)を変更
  • DNS のキャッシュを削除 (sudo systemd-resolve --flush-caches)
  • システム再起動 (たしかにね、大事だよね)
  • DNS PROBE … はシステム時刻がずれてるのが一般的な原因だからと言われ確認 (でもaptで問題が出ない理由の説明にはならない)
  • ISPやネットワークインターフェースを変更 (有線やモバイル回線に接続してみる)
  • DNS サーバー変更して VPN に再接続
  • VPN に接続した後で DNS サーバー変更 (expressvpn が resolv.conf を書き換えるので)
  • expressvpn パッケージを purge して再インストール
posted by かぷらす at 23:40| Comment(0) | 作業記録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください