かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Mac wifiの認証画面が表示されない。にハマる

カンファレンスや勉強会、お店などにある FreeWifi で wifi 接続時に認証画面が表示されログインをしないとネットワークに繋げられないものがあります。
通常であれば wifi を選択するとシステムダイアログ (Captive Portal って言うらしい) のような感じで認証画面が表示されるのですが、ネットワークを再接続したりしても一向に認証画面が表示されず wifi (基本的人権) を得られないくてハマってしまったのでメモ。

DNS の値が 8.8.8.8 になっている

Mac wifi 認証画面 表示されない」とかで検索すると結構出てくるやつ

  1. システム管理画面 > ネットワーク > wifi > 詳細
    f:id:kikiki-kiki:20190803143321p:plain
  2. DNS タブを選択
  3. DNS サーバ に 8.8.8.8 ある場合、表示されている 8.8.8.8 でないアドレスをメモしておき 「-」で 8.8.8.8 を削除するか「+」でメモしておいたアドレスのみに上書きする f:id:kikiki-kiki:20190803143348p:plain
  4. 一度 wifi を off にして再接続
  5. 認証ダイアログが表示されれば成功

今回はこれで解決しなかった

再起動

wifi アクセスポイントが見つからないとか困った時の再起動。
割と解決するケースが多いソリューション。

今回の場合は再起動したら、認証画面が表示されてた。ただしエラーで、
「問題が起きました。」 「問題が起きました。」 その問題の内容を教えて欲しい…

curl で認証ページのURLを見つける

通常は何らかのwebサイトのアクセスしようとしたら認証ダイアログ (Captive Portal) が表示されるものが、今回はどうやらシステムの認証ダイアログの表示が何らかの理由でできなくなっているのが原因っぽい。
curl コマンドでどのようにリダイレクトをしているかの log をみれば認証画面の URL が解りそう。

こんな感じのコマンドを実行

$ curl -k -v -L -D test example.com

👇(抜粋)

* Rebuilt URL to: http://example.com/
* Connected to example.com
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 302 Moved Temporarily
< Connection: close
< Location: https://XXXX.XXXX.com/logon?XXXXXXXXXXXXXXX
<
* Closing connection 0
* Issue another request to this URL: 'https://XXXX.XXXX.com/logon?XXXXXXXXXXXXXXX'
* Connected to XXXX.XXXX.com
> GET /logon?XXXXXXXXXXXXXXX HTTP/1.1
> Host: XXXX.XXXX.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Allow: OPTIONS, GET

example.com にアクセスしようとしたのが 302 でリダイレクトして、認証画面の https://XXXX.XXXX.com/logon?XXXXXXXXXXXXXXX にアクセスし成功していた事が解った。
カットしているけど、ログにはレスポンスの body としてログイン画面のHTMLが表示されえていたので、この認証画面にアクセスすれば良さそうだと判断できた。 (パラメーターが動的に変わるものだと難しいかもしれないけど…)

curl のオプション

  • -k ... Allow connections to SSL sites without certs (H)
    SSLの証明エラーとかを無視して接続
  • -v ... Make the operation more talkative
    リクエスト・レスポンスのHTTPヘッダー、Bodyなど詳細を出力
  • -L ... Follow redirects (H)
    リダイレクトさせる
  • -D ... --dump-header FILE Write the received headers to FILE
    詳細なヘッダをファイルに出力 ( 先の例では test というファイルに出力している )

 

ポエム

今回は、curl 叩いて表示されたレスポンスにあった認証画面の URL をブラウザに直接入力するとログイン画面が表示され wifi を使うことができるようになった。ネットワーク関係はド素人なので、お作法的に良いのかチョット判断しかねるけど wifi の認証画面が表示されない時に調べてみる方法の一つにはなるかもしれない。

いつもスタバとかでもログイン画面のダイアログ出てこないから覚えてる認証画面のURL直接叩いて接続してたんだけど、そもそもマシンのアプリか何かがこのダイアログの表示を阻んでいるっぽい…


[参考]

明治 カールチーズあじ 64g

明治 カールチーズあじ 64g

curl...