伺服器用ip不能訪問
A. 一個網站用域名可以訪問,用ip不能訪問,是為什麼
一個ip可以指向多個網站,一個域名也可以綁定多個ip。在訪問網站時都是通過域名訪問,在瀏覽器中輸入對應的網站域名,然後通過dns伺服器進行解析找到對應的主機地址,從而獲取網站數據,而直接輸入ip訪問屬於反向解析,由於網站開發者在一個主機ip上會存放多個網站資源所以在使用ip訪問時無法查詢到訪問的是哪一個網站資源故而會無法打開。
一個ip可以指向多個網站,一個域名也可以綁定多個ip。在訪問網站時都是通過域名訪問,在瀏覽器中輸入對應的網站域名,然後通過dns伺服器進行解析找到對應的主機地址,從而獲取網站數據,而直接輸入ip訪問屬於反向解析,由於網站開發者在一個主機ip上會存放多個網站資源所以在使用ip訪問時無法查詢到訪問的是哪一個網站資源故而會無法打開。
所以當一個ip對應多個web站點時,單單通過一個ip地址時無法匹配到用戶需要訪問的是哪一個web站點故而是無法正常訪問的,然而通過域名,就能在主機的host文件中找到需要訪問的是哪個web站點,從而返回正確的網站數據。如果一個ip只對應一個web站點,那麼網站開發者也許禁止反向解析。會屏蔽掉ip地址直接訪問,或者更改web默認埠。
B. 為什麼用IP無法訪問網站,域名可以訪問
因為是虛擬主機。
主機上放置了N個網站,而每個網站綁定1個或以上域名,所以用域名訪問主機可以解析到網站目錄,但用IP的話伺服器就不知道解析到哪個目錄了。
如果就想用ip形式訪問,可以手動設置Host頭域信息。
java中以org.apache.http.client.methods.HttpGet實現http請求為例,解決方法HttpGet httpGet = new HttpGet(url);
httpGet.setHeader(「Host」, ServerHostname);
(2)伺服器用ip不能訪問擴展閱讀:
1、直接使用ip地址訪問不了站點的原因
原因就在於該ip地址可能肆渣緩對應著多個web站點,單單依靠ip地址是不知道如何匹配到哪個web站點的。但是通過域名,我們就能夠知道具體要訪問哪一個HOST。如果使用虛擬主機,直接找到相關virtual HOST即可,如果梁廳使用反向代理,那麼通過代理找到HOST的實際私網地址也可以。
2、只有一個公網ip如何實現多個WEB站點的訪問
有兩種辦法可以實現,其一是虛擬主機,其二就是反向代理。通裂模過目前來看,虛擬主機的實現方式已然不多,更多的企業或者學校使用的是反向代理技術。
C. 為何不能通過IP訪問我的伺服器
應該是內網的物理連接問題。
另外再去看看你網路的出口有沒有防火牆上的開放埠配置不正確。