Chrome打不開Pycharm運行的web應用


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

在Chrome中一直打不開,換了Firefox,依然如此,但是用mac自帶的safari可以打開。

起初我以為是ip地址的問題,將0.0.0.0換成127.0.0.1和localhost都沒有用。

一時在網上沒找到答案。

Safari能用就用Safari吧,其它先不管了。

后來使用anaconda及Jupyter Notebook時又出現了同樣的情況。不能忍了。

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

對於Chrome:

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

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

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

對於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,那么通過內網地址或外網地址都可以訪問這個應用。但是如果綁定了內網地址,那么通過外網地址就不能訪問。反之同理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM