Chrome打不開Pycharm運行的web應用

 這個現象困擾了我一段時間。好比在Pycharm裏面運行一個Flask程序,如圖所示web

在Chrome中一直打不開,換了Firefox,依然如此,可是用mac自帶的safari能夠打開。服務器

起初我覺得是ip地址的問題,將0.0.0.0換成127.0.0.1和localhost都沒有用。網絡

一時在網上沒找到答案。this

Safari能用就用Safari吧,其它先無論了。代理

後來使用anaconda及Jupyter Notebook時又出現了一樣的狀況。不能忍了。xml

在Stack Overflow上面終於找到了答案,解決方案好簡單。blog

對於Chrome:

1. 打開setting|高級|系統|打開代理設置ip

2.mac中會自動打開網絡設置,如圖所示域名

3. 在‘忽略這些主機與域的代理設置’文本框中加上‘localhost,0.0.0.0,127.0.0.1’,就能夠了。io

對於Firefox:

1. 打開首選項|高級|網絡

2. 點擊「配置Firefox如何鏈接至國際互聯網」後面的「設置」

3. 在對話框中選擇「使用系統代理設置」,即上面在mac中修改的代理設置。

 

另外補充localhost,127.0.0.1和0.0.0.0之間的區別

首先看看ping這3者的結果以下

可見localhost與127.0.0.1均可ping通,而0.0.0.0不能被ping通

另外,咱們注意到localhost(127.0.0.1)這一欄,說明兩種有某種關係。 

在打開本機的hosts,能夠看到,localhost對應的ipv4和ipv6分別是127.0.0.1和::1.

說明localhost是其域名,用於指代this computer或者this host,能夠用來獲取運行在本機上的網絡服務

而127.0.0.1屬於{127,}集合中的一個,而全部網絡號爲127的地址都被稱之爲迴環地址,取值範圍爲 127.0.0.1-127.255.255.254

對於 0.0.0.0,它是真正表示「本網絡中的本機」。

那它和localhost與127.0.0.1有什麼區別呢?打個比方,0.0.0.0就像是章魚的軀幹,而localhost與127.0.0.1比如就是章魚的腕,章魚靠腕交流傳遞信息而不是靠軀幹。可是全部的腕都是爲同一個軀幹服務。

再好比,一臺服務器,一個外網地址A,一個內網地址B,若是上面一個web應用綁定的端口指定了0.0.0.0,那麼經過內網地址或外網地址均可以訪問這個應用。可是若是綁定了內網地址,那麼經過外網地址就不能訪問。反之同理。

相關文章
相關標籤/搜索