這個現象困擾了我一段時間。好比在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
1. 打開setting|高級|系統|打開代理設置ip
2.mac中會自動打開網絡設置,如圖所示域名
3. 在‘忽略這些主機與域的代理設置’文本框中加上‘localhost,0.0.0.0,127.0.0.1’,就能夠了。io
1. 打開首選項|高級|網絡
2. 點擊「配置Firefox如何鏈接至國際互聯網」後面的「設置」
3. 在對話框中選擇「使用系統代理設置」,即上面在mac中修改的代理設置。
首先看看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,那麼經過內網地址或外網地址均可以訪問這個應用。可是若是綁定了內網地址,那麼經過外網地址就不能訪問。反之同理。