導航:首頁 > IDC知識 > linux中host綁定域名

linux中host綁定域名

發布時間:2020-11-19 06:16:12

1、linux 中host 文件的作用

hosts文件是Linux系統中一個負責IP地址與域名快速解析的文件,以ASCII格式保存在「/etc」目回錄下,文件名答為「hosts」(不同的linux版本,這個配置文件也可能不同。比如Debian的對應文件是/etc/hostname)。hosts文件包含了IP地址和主機名之間的映射,還包括主機名的別名。在沒有域名伺服器的情況下,系統上的所有網路程序都通過查詢該文件來解析對應於某個主機名的IP地址,否則就需要使用DNS服務程序來解決。通常可以將常用的域名和IP地址映射加入到hosts文件中,實現快速方便的訪問。

2、linux系統配置host文件主機別名和dns域名解析的區別

很明顯配置host的工作量比較大,當一兩個主機時,體會不到,如果有幾十上百上千台的時候配置會很麻煩,使用DNS伺服器就快捷的多,只需要修改DNS伺服器的配置,這樣管理要高效的多

3、Linux中hosts文件在哪

linux操作系統中,hosts文件在/etc目錄下,具體文件路徑為 /etc/hosts,可以直接使用vim編輯器對hosts進行操作,版不過需要注意,這權個文件不在home目錄下,所以對其進行操作時記得加上sudo:

sudo vim /etc/hosts

拓展內容

hosts文件

hosts文件(域名解析文件[1])是一個用於儲存計算機網路中各節點信息的計算機文件。這個文件負責將主機名稱映射到相應的IP地址。hosts文件通常用於補充或取代網路中DNS的功能。和DNS不同的是,計算機的用戶可以直接對hosts文件進行控制。

最初在Internet的前身ARPANET中,其成員SRI International手動維護並分享了一個名為HOSTS.TXT的文件,其中就包括主機名稱和對應地址。1983年DNS系統開始開發,1984年得到了發展。[2]在網路快速的發展過程中,DNS可以自動提供動態的主機名解析。不過在現代操作系統,hosts文件仍然是一個可以作為備用手段的名稱解析機制。

4、請問如何修改Linux伺服器上的hosts地址?

1、用vi/vim打開/etc/hosts進行修改即可。

例如:修改www.baidu.com的ip為127.0.0.1,只需要vim打開/etc/hosts文件,添加如下圖所示回紅框中的內容即可答。

修改/etc/hosts之後,ping百度的效果如下圖所示: 

2、補充:

hosts —— the static table lookup for host name(主機名查詢靜態表)。 

hosts文件是Linux系統上一個負責ip地址與域名快速解析的文件,以ascii格式保存在/etc/目錄下。hosts文件包含了ip地址與主機名之間的映射,還包括主機的別名。在沒有域名解析伺服器的情況下,系統上的所有網路程序都通過查詢該文件來解析對應於某個主機名的ip地址,否則就需要使用dns服務程序來解決。通過可以將常用的域名和ip地址映射加入到hosts文件中,實現快速方便的訪問。

優先順序 : dns緩存 > hosts > dns服務

5、Linux中hosts文件在哪

1、主機名:
無論在區域網還是INTERNET上,每台主機都有一個IP地址,是為了區分此台主機和彼台主機,也就是說IP地址就是主機的門牌號。
公網:IP地址不方便記憶,所以又有了域名。域名只是在公網(INtERNET)中存在,每個域名都對應一個IP地址,但一個IP地址可有對應多個域名。
區域網:每台機器都有一個主機名,用於主機與主機之間的便於區分,就可以為每台機器設置主機名,以便於以容易記憶的方法來相互訪問。比如我們在區域網中可以為根據每台機器的功用來為其命名。
主機名相關的配置文件:/etc/hosts
2、主機名配置文件:
主機名的配置文件大多是/etc/hosts
hosts 配置文件是用來把主機名字映射到IP地址的方法,這種方法比較簡單。但這種映射只是本地機的映射,也就是說每台機器都是獨立的,所有的計算機都不能相互通過Hostname來訪問。
例如:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 localhost.localdomain localhost
192.168.1.195 debian.localdomain debian
一般情況下hosts的內容關於主機名(Hostname)的定義,每行為一個主機,每行由三部份組成,每個部份由空格隔開。其中#號開頭的行做說明,不被系統解釋。
第一部份:網路IP地址。
第二部份:主機名.域名,注意主機名和域名之間有個半形的點。
第二部份:主機名(主機名別名) ,其實就是主機名。
當然每行也可以是兩部份,就是主機IP地址和主機名;比如 192.168.1.195 debian

linux host 文件路徑就在 /etc/hosts hosts 就是文件

6、linux伺服器怎樣綁定域名?

一、DNS伺服器的設置

我們知道互聯網網是基於TCP/IP協議的,要進行通信必須獲得對方的IP地址,這是通過DNS伺服器來實現的。因此要想實現虛擬域名首先應當令DNS伺服器接受該虛擬域名,即把它映射到指定的IP地址上。因為我們靠Web伺服器來區分域名,所以這個IP地址自然應當是Web伺服器所管理的。

RedHat6.0操作系統中捆綁有BIND DNS伺服器。它的域名配置文件是」/etc/named.conf」,一般情況下,域配置文件放在」/var/named」目錄下面。

例1、named.conf文件的配置:

zone 「domain.com」 {
type master;
file 「domain.com」;
};
zone 「0.10.10.in-addr.arpa」 {
type master;
file 「10.10.0〃;
};

該例子說明」domain.com」的域配置文件是」/var/named/domain.com」,反向域的配置文件是」/var/named/10.10.0〃。domain.com文件負責把DNS域名映射為IP地址。

例2、domain.com文件配置:

@ IN SOA dns.domain.com. hostmaster.dns.domain.com. (
1998111003 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
@ IN MX 10 dns.domain.com.
@ IN NS dns.domain.com.
@ IN A 10.10.0.1
www IN A 10.10.0.1

假定要增加的域名是aaa.domain.com,想要指到www.domain.com,DNS服務中應增加一個別名記錄,可寫成:

aaa IN CNAME www.domain.com.

如果需要配置大量的虛擬域名,domain.com文件要很大,而且也相當麻煩。我們可以使用符號 「*」 ,即在 domain.com 文件中加入:

* IN CNAME www.domain.com.

這樣它就把所有沒給出設置的以domain.com結尾的記錄全部轉到www.domain.com去了,不管是aaa.domain.com還是bbb.domain.com。這不會影響已有的記錄。配置好DNS伺服器後應該重新啟動守護進程named:

[root@domain /root]# /etc/rc.d/init.d/named restart
二、Apache伺服器的配置

Apache伺服器是目前互聯網上使用最多的Web伺服器,它可以維護非常繁忙的站點。RedHat 6.0捆綁了Apache Web Server 1.3。它的配置文件位於」/etc/httpd/conf」目錄下,有httpd.conf、srm.conf、access.conf,下面討論一下與虛擬域名有關的配置:

1、靜態配置

修改配置文件 httpd.conf 的步驟:

(1) 首先設置UseCanonicalName為off。它指示用伺服器Host:header的內容代替ServerName 的值來提供給環境變數SERVER_NAME。

(2) 然後加入:

NameVirtualHost xxx.xxx.xxx.xxx其中xxx.xxx.xxx.xxx為所要配置的虛擬伺服器的IP地址。在此可配置多個虛擬IP地址,當然要與DNS伺服器中的配置一致。(注意:這里要用IP地址,不能用域名。)

(3) 接下來為每個虛擬域名加入一段記錄:

< virtualhost xxx.xxx.xxx.xxx>
…..
< /virtualhost>

xxx.xxx.xxx.xxx要和NameVirtualHost配置的IP地址一致。在兩個標志之間可加入的配置參數有:

ServerName後面跟你要增加的虛擬域名,如aaa.domain.com ;
Documentroot如果你映射到本機的路徑就加在後面,如」/home/aaa」 ;
redirect如果你映射到遠端的URL可加在後面,有兩個參數,第一個是虛擬域名的相對路徑,第二個是遠端站點的URL;
ServerAlias後可加入本域名的別名,可使用通配符,如*.aaa.domain.com 。

下面舉兩個例子:

例3、映射到本機的物理路徑:

< virtualhost xxx.xxx.xxx.xxx>
DocumentRoot 「/home/test」
ServerName test.domain.com
< virtualhost>

例4、映射到遠端的URL:

< virtualhost xxx.xxx.xxx.xxx>
ServerName test1.doamin.com
redirect / http://test.domain1.com/welcome.htm
< /virtualhost>

還有一些參數,象log文件的位置、超時的設置、緩沖區的設置等等,在此不一一介紹,可以參考Apache伺服器的在線幫助文件。配置好httpd.conf文件後需要重新啟動Apache的後台守護進程httpd,

[root@domain /root]# /etc/rc.d/init.d/httpd restart

每增加一個虛擬域名就要增加一段位於 < VirtualHost...>…< /VirtualHost> 之間的配置代碼,而且只有在重新啟動 httpd 後新配置才能生效。

2、動態配置

可以發現,如果要配置大量的虛擬域名將大大增加配置文件的長度,這樣還會使Apache啟動變慢,佔用更多的內存,而且也不容易實現在線申請。可以通過選擇動態方式來配置。這樣不必事先寫好配置,而是通過編寫一定的動態規則來自動生成或隨時從獨立的配置文件中讀取信息。

Apache有一個強大的擴展功能,即模塊(Moles)的特性。模塊可對伺服器的功能進行擴充,它在運行和使用時才裝入伺服器,這樣比一直放入伺服器中要節省內存空間,同時也比調用外部CGI程序速度快。

現在使用一個功能強大的模塊來實現動態配置虛擬域名,這就是mod_rewrite。它負責偵聽從客戶機送出的URL地址,並基於一組規則表達式對該URL來進行重寫。這類似於URL別名概念,但它更進了一步,輸出的URL可以映射到其他主機的任何URL地址上。 修改配置文件httpd.conf的步驟:

(1) 先設置UseCanonicalName為off 。

(2) 使用RewriteEngine on打開rewrite引擎。用RewriteMap設定配置文件的位置和屬性,用RewriteCond和RewriteRule制定相應的規則。

例5、httpd.conf 文件中相關配置的一個例子:

RewriteEngine on
RewriteMap lowercase int:tolower
# 定義獨立的配置文件的位置
RewriteMap vhost dbm:/www/conf/vhostdbm
# 利用獨立的配置文件重映射虛擬域名
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/docs/$1

RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1

這里的 vhostdbm 文件格式見」CGI 程序的編制」 。
三、CGI程序的編制

要實現虛擬域名的在線申請,就必須編寫相應CGI程序動態修改獨立的配置文件(即上面的vhostdbm文件)和進行用戶的管理(包括用戶申請,登錄,密碼修改等等)。在此只介紹對獨立的配置文件的操作,其他屬於如何用Perl語言來編寫CGI程序,請參考有關資料。

vhostdbm文件使用dbm格式來記錄數據,與用普通文本文件相比可加快尋找速度,而且易於修改。許多UNIX系統都具有叫做dbm(database management)的標准庫。該庫將鍵-值對的集合存貯到一對磁碟文件中,提供簡單的資料庫管理工具,可以方便的更改、新增或刪除數據內容。

Perl訪問dbm的方式:通過一個類似於打開文件的進程將關聯數組與dbm資料庫聯系起來。在數組中創建新元素時立即就更改了dbm資料庫。刪除一個元素的同時也刪除了dbm資料庫中的數值。可使用:

1、欲將dbm資料庫與dbm數組相關聯起來:

dbmopen(%arrayname,」dbmfilename」,$mode);

如果dbmfilename不存在的話就新建該庫。%arrayname參數是Perl的關聯數組(如果這個數組已經有值,那麼這些值就被刪除)。該關聯數組連接到叫做dbmfilename的dbm資料庫中。$mode 參數是當需要創建庫時控制庫文件許可權的數字,該數字被指定為8制,經常被用到的是0644,給除了機主之外的新用戶以只讀的許可權,機主可有全部許可權。

2、關閉dbm庫:

dbmclose(%arrayname);
%arrayname 是已經與dbm庫關聯了的數組名。

例6、VHOST打開vhostdbm,或新建一個dbm庫:

dbmopen(%VHOST,」vhostdbm」,0644);

例7、新建記錄或更改已有記錄(設從html文件form中傳過來的參數名為vhost、rhost):
$VHOST{$FORM{』vhost』}}=$FORM{』rhost』};

例8、刪除已有記錄(設從html文件form中傳過來的參數名為vhost):
delete $VHOST{$FORM{』vhost』}};

例9、關閉vhostdbm:

dbmclose(%VHOST);

註:以上已經假設傳過來的參數經過了驗證,不存在重復的記錄,否則會導致已有記錄的混亂。

httpd.conf 該文件底部

< virtualhost 192.168.0.100> #你的伺服器ip
DocumentRoot 「/home/test」 #你的網站路徑
ServerName test.domain.com #你的域名
< virtualhost>

7、Linux伺服器如何綁定域名?

?

8、linux bind,如何配置能夠解析不帶域名的host主機名。

從你提供的系統看你的bind應該是可以支持Response Policy Zone (RPZ) Rewriting策略的。
把主機名都寫在rpz的zone里應該是可以實現的。
例如
response-policy { zone "badlist"; };

and this zone statement

zone "badlist" {type master; file "master/badlist"; allow-query {none;}; };

with this zone file

$TTL 1H
@ SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h)
NS LOCALHOST.

; QNAME policy records. There are no periods (.) after the owner names.
server1 A 10.0.0.1

9、請教Linux下Hosts 文件內,一個域名對應多個IP是怎麼操作的

1、也就是說通常情況下一個域名同一時刻只能對應一個IP地址。
但是在域名服務內商那容里,你可以把伺服器群裡面的多個提供相同服務的伺服器IP設置一個域名可以輪詢。但是同一時刻,一個域名只能解析出一個IP供你使用。這些IP可以輪流著被解析。
這些IP其實對應的伺服器提供的是同一種的服務。

2、一個IP可以綁定無數個域名,這個沒有限制。

10、如何在Linux自己添加域名解析記錄?類似於操作Windows下的HOST文件?

第一個問題:
/etc/hosts 文件的格式如下:

IP地址 主機名/域名

第一部份:網路IP地址;

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

第三容部份:主機名別名;

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

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

第二個問題:
有三種解決方法:一是裝一個ROUTEROS就是把機器變成路由器;
二、在linux上開啟代理伺服器功能;
三、利用linux的防火牆iptables做NAT也是可以的。

與linux中host綁定域名相關的知識