各位前輩好,小弟有個問題Google不到,所以特上來詢問解答。
我們有一台mail伺服器是使用Notes,假設名稱為mailsrv,
外部ip:218.56.45.27,內部ip:192.168.1.100,
沒有內部DNS伺服器,全部靠168.95.1.1來解析域名。
為了讓主管的筆電,在公司或者回家都可以正常收信,原本前人的做法是直接在設定時,將完整域名打上去,如:mailsrv.abc.com.tw,但實際有時候就會遇到連不上的狀況,但在筆電上又可以ping到並解析出外部ip,於是為了讓我在公司可以快速正常設定信箱,我的作法是在host新增兩筆紀錄
192.168.1.100 mailsrv
218.56.45.27 mailsrv
另個目的,是為了讓筆電在公司的時候可以走內部IP,收信速度比較快,這樣實際測試將筆電網路環境改為內網及外網,都可以正常收信。
但在偶然的情況下,筆電在公司的環境時,我使用netstat -n查看,居然是使用外部ip連線,所以想請問host的解析順序為何? 理論上不是應該內部ip先連線嗎??
謝謝!
你這需要考量到所謂的dns緩存。
host只是一個dns對應的參考檔。只有在無法對應或是過期的情況下才會再去重新取得對應可弿的dns資料。
也就是說,今天該筆電已經在外面,取到了外部ip來當該域名的指向。
但此外部ip就算在你公司也是可以運做。
自然就不會產生切換了。一直使用其外部ip。
電腦在解析網址時,以正常來說都是問DNS Server,DNS回覆正確IP,但是你今天要在Host檔設定一組跟DNS同網域名時,這時候該主機就會先找這個Host檔的內容,然後使用,就不會使用DNS Server上的IP了
另外查該主機經過的結點,可以用tracery指令去查,可以看出是否真的有出去並上到網際網路
他是依 host 檔內順序去解析
同樣的項目只有第一個會被使用
https://serverfault.com/questions/429839/assign-multiple-ips-to-1-entry-in-hosts-file/429851
前人的作法我認為比較正確
你要試著找出無法連線的問題比較恰當
正常內網就解內網 IP 出來
剛在公司電腦測試一下,刻公司MAIL的內外部IP的record在hosts裡,對應到的都是內部IP,那就可能像星空大所說有cache,可以用ipconfig /flushdns清空cache
除非公司規模很小,沒有資源可用或真的沒解決方案,建議不要用刻hosts的方式