前段時間在linux下調用另外合作方url頁面的時候。如果對方是ip的話能夠通路,域名則通路不了,每次都報:Exception:java.net.UnknownHostException: msgmanager.com。不知道咋回事。感覺特别奇怪。首先對方域名是沒問題的。我寫的頁面也是沒問題的。應為通過ip可以成功通路的呀。這就奇怪了。
今天在一個合作方 的提示下終于搞定了。首先讓我在linux下ping msgmanager.com 他的域名,結果問題裡面就出現了。報的ping uknown host msgmanager.com,原來是linux域名設定的問題。開始一直沒想到這個一直從程式代碼中找問題。
後來vi /etc/hosts 了一下,在裡面添加了218.30.105.111 msgmanager.com,ok了。原來是linux沒法自動解析域名。或者是我的域名伺服器沒有設定。
網上搜了一下Linux域名伺服器設定:
來自:http://www.linuxidc.com/Linux/2007-03/2669.htm
位于/etc目錄下的有:
hosts,host.conf,resolv.conf,named.boot,named.conf。
1、“hosts”檔案,定義了主機名和ip位址的對應,其中也有将要運作dns這台電腦的ip位址和主機名。内容:
127.0.0.1 localhost.localdomain localhost
2、“host.conf”檔案[Boban注:原來誤寫成hosts.conf],"order hosts bind"語句,指定了對主機名的解析順序是先到hosts中查找,然後到dns伺服器的記錄裡查找。“multi on”則是允許一個主機名對應多個ip位址。内容:
order hosts, bind
multi on
nospoof on
3、“resolv.conf”檔案,“nameserver 10.0.0.211”指定了dns伺服器的位址。注意,這個檔案對普通非dns伺服器的電腦(非windows的系統;Windows系統是在“網絡屬性”中設定這項的)來說,是必不可少的。你如果沒有設定本機為dns伺服器,你又要能夠解析域名,就必須指定一個dns伺服器的位址。你可以最多寫上三個位址,作為前一個失敗時的候選dns伺服器。“domain zrs.com”指定預設的域。檔案内容:
domain 21php.com
nameserver 11.0.0.1
将resovl.conf檔案設定成:
search localdomain
nameserver 210.82.89.253
nameserver 202.106.0.20
搞定。