0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flutter公式ページ(127.0.0.1)が開けない問題の対策

Last updated at Posted at 2020-10-29

興味本位でFlutterの公式ページをのぞいてみようと思ったら、ERR_CONNECTION_REFUSEDが出てしまって、一般的な対策をしても解決しなかったときの対策についてのメモです。あまり同じ罠にはまる人はいないと思われますが、一応残しておきます。

最初に結論

Flutterの公式ページのIPアドレスが127.0.0.1だったことが要因の1つになっていました。過去にローカルのMacBook Proで起動していたPowというサーバーが同じく127.0.0.1を使っており、ずっと起動した状態になっていたため、アドレスがバッティングしてしまってERR_CONNECTION_REFUSEDが発生していました。

対策として、 全く使っていなかったPowをアンインストールすることで正常にFlutter公式ページ(127.0.0.1)を開くことができるようになりました。

以下、対策に至るまでの経緯を順に書いておきます。

問題発生時の症状

MacBook ProからChromeを使ってFlutter公式ページを開こうとしましたが、ERR_CONNECTION_REFUSEDが出てしまって正しく表示できませんでした。同じネットワークに接続しているAndroidタブレットでは問題なく表示されていました。

対策その1 一般的なERR_CONNECTION_REFUSED対策を試す

以下のサイトを参考にして、ERR_CONNECTION_REFUSEDエラーが出たときの一般的な対策を試しました。

1. ルーターの再起動

タブレットが問題なく表示できていることから考えても無駄だとわかっていましたが、おまじない程度と思ってやってみました。やはり改善は見られませんでした。

2. ChromeのキャッシュとCookiesの削除

1時間、24時間、7日間と期間を変えながら削除していきましたが、効果はなく、ERR_CONNECTION_REFUSEDが出ていました。

3. DNSキャッシュの削除

もはや何をやっているのかも理解できているかどうか怪しい内容になってきましたが、これも効果なしでした。また、MacBook Proでのプロキシ設定もファイヤーウォールも特に何も制限しておらず、誰が犯人なのか、迷宮入りしそうでした。

4. DNSアドレスの変更

すでにフレッツ光で設定したIPv6のDNSアドレスがありましたが、前述のサイトを参考にして8.8.8.8を追加してみました。この対策も残念ながら効果がありませんでした。

5. Chrome拡張機能の無効化

単純にオフにするだけでしたが、やはり改善せず、ERR_CONNECTION_REFUSEDのままでした。

対策その2 DNSサーバーへの応答やPingコマンドを試す

DNSアドレスの変更を少しヒントとして、現状のフレッツ光のDNSサーバーにアクセスしてFlutter公式ページ(flutter.dev)を見つけられるのかどうか試してみました。

$ dig @2404:1a8:7f01:b::3 flutter.dev aaaa

; <<>> DiG 9.10.6 <<>> @2404:1a8:7f01:b::3 flutter.dev aaaa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20276
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;flutter.dev.			IN	AAAA

;; AUTHORITY SECTION:
flutter.dev.		300	IN	SOA	ns1.googledomains.com. dns-admin.google.com. 2684359127 21600 3600 1209600 300

;; Query time: 54 msec
;; SERVER: 2404:1a8:7f01:b::3#53(2404:1a8:7f01:b::3)
;; WHEN: Thu Oct 29 11:31:36 JST 2020
;; MSG SIZE  rcvd: 114

AUTHORITY SECTIONという項目を見る限り、なんか正しくGoogleのDNSにアクセスしているようなので、インターネットアクセス自体はできているようでした。

この結果をうけて、もう少しシンプルに考え、Pingコマンドの実行から試してみることにしました。

$ ping flutter.dev
PING flutter.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.050 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.127 ms
(中略)
64 bytes from 127.0.0.1: icmp_seq=10 ttl=64 time=0.093 ms
^C
--- flutter.dev ping statistics ---
11 packets transmitted, 11 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.050/0.118/0.165/0.029 ms

結果は全く問題なかったのですが、ここでようやく127.0.0.1という特異なIPアドレスに気が付きました。

$ ping google.co.jp
PING google.co.jp (172.217.161.227): 56 data bytes

$ ping google.com
PING google.com (216.58.196.238): 56 data bytes

参考までにgoogle.co.jpgoogle.comも同じくPingを実行してIPアドレスを確認したところ、いかにも外部のIPアドレスというような値が返ってきました。

対策その3 127.0.0.1をChromeに打ち込んでみる

flutter.devではなく、127.0.0.1を直接Chromeのアドレスバーに打ち込んでみたところ、Powというサーバーの画面が表示されてしまいました。

ここにきて、ようやく犯人が見つかりました。以前ローカルであれこれと試していたときにインストールしたBasecamp製の**Powというローカルサーバーが127.0.0.1を使用しており、IPアドレスがバッティングしていたことがFlutter公式ページでERR_CONNECTION_REFUSEDが出てしまう問題の原因**でした。

対策その4 Powのアンインストール

ローカルサーバーなので単純にプロセスをkillすれば終わりと思っていたのですが、Powは何度killしても、アクティビティモニターで強制終了しても、蘇ってきてしまう厄介なやつでした。

仕方がないので127.0.0.1をChromeに打ち込んで表示されたPowのページに書いてあった以下のコマンドを実行し、アンインストールしました。

$ curl get.pow.cx/uninstall.sh | sh

やっとERR_CONNECTION_REFUSEDが解決して、Flutter公式ページを正しく表示できるようになりました。

余談

Powはすでに開発やサポートが終了して数年も経っているので、プロセスをkillしても蘇ってくるという想定外の動作が起きてしまったのかもしれないですね。なかなかたちが悪かったです。
あと、127.0.0.1なんていうアドレスを使う辺りもGoogleのケレン味たっぷりという印象を受けました。やれやれ。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?