ssh: Could not resolve hostname devsrv: Name or service not known

ubuntu下 scp時出錯:ssh: Could not resolve hostname devsrv: Name or service not known

解決方法:

需要將devsrv對應的ip加到文件名/etc/hosts中。


附加

/etc/hosts文件作用:

1. 關於/etc/hosts,主機名和IP配置文件

Hosts - The static table lookup for host name(主機名查詢靜態表)

Linux 的/etc/hosts是配置ip地址和其對應主機名的文件,這裏可以記錄本機的或其他主機的ip及其對應主機名。不同的linux版本,這個配置文件也可能不同。比如Debian的對應文件是/etc/hostname。

2. 配置文件

這個文件可以配置主機ip及對應的主機名,對於服務器類型的linux系統其作用還是不可忽略的。在局域網或是INTERNET上,每臺主機都有一個IP地址,它區分開每臺主機,並可以根據ip進行通訊。但IP地址不方便記憶,所以又有了域名。在一個局域網中,每臺機器都有一個主機名,用於區分主機,便於相互訪問。

Linux主機名的相關配置文件就是/etc/hosts;這個文件告訴本主機哪些域名對應那些ip,那些主機名對應哪些ip:

比如文件中有這樣的定義

192.168.1.100 linumu100 test100

假設192.168.1.100是一臺網站服務器,在網頁中輸入http://linumu100或http://test100就會打開192.168.1.100的網頁。

通常情況下這個文件首先記錄了本機的ip和主機名:

127.0.0.1 localhost.localdomain localhost

3. 配置文件格式說明

一般/etc/hosts 的內容一般有如下類似內容:

127.0.0.1 localhost.localdomain localhost

192.168.1.100 linmu100.com linmu100

192.168.1.120 ftpserver ftp120

一般情況下hosts文件的每行爲一個主機,每行由三部份組成,每個部份由空格隔開。其中#號開頭的行做說明,不被系統解釋。

第一部份:網絡IP地址;

第二部份:主機名或域名;

第三部份:主機名別名;

當然每行也可以是兩部份,即主機IP地址和主機名;比如 192.168.1.100 linmu100。

這裏可以稍微解釋一下主機名(hostname)和域名(Domain)的區別:主機名通常在局域網內使用,通過hosts文件,主機名就被解析到對應ip;域名通常在internet上使用,但如果本機不想使用internet上的域名解析,這時就可以更改hosts文件,加入自己的域名解析。

4. /hosts文件可以幫助解決哪些問題

4.1 遠程登錄linux主機過慢問題

有時客戶端想遠程登錄一臺linux主機,但每次登錄輸入密碼後都會等很長一段時間纔會進入,這是因爲linux主機在返回信息時需要解析ip,如果在linux主機的hosts文件事先加入客戶端的ip地址,這時再從客戶端遠程登錄linux就會變很快。

注:這裏所說的遠程登錄不僅僅是ssh,還可能是mysql遠程登錄,或是文件共享的查詢等。

4.2 雙機互連

當兩臺主機只是雙機互連時,這時兩臺主機都需要設置自己的ip,同時在對方的hosts文件里加入自己的ip和主機名。

5. 主機名修改工具hostname;

其實主機名的修改也有專用工具,就是hostname

hostname - show or set the system’s host name

顯示主機名:

# hostname

linmu100

此主機的主機名是linmu100,不加參數是用來顯示當前主機的主機名;

臨時設置主機名:

# hostname test100

# hostname 注:顯示主機名

test100

通過hostname 工具來設置主機名只是臨時的,下次重啓系統時,此主機名將不會存在;

顯示主機IP:

# hostname -i

192.168.1.100


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章