军花 發表於 2023-6-26 10:39:00

linux中,如何在/etc/hosts中将一个域名解析为多个IP地址?工作原理是什么?

<div class="lake-content">
<p id="uc4c87004" class="ne-p"><span class="ne-text">可以在/etc/hosts文件中,将一个域名配置多个IP地址</span></p>
<p id="ue8ca571f" class="ne-p">&nbsp;</p>
<p id="u6f267528" class="ne-p"><span class="ne-text">比如:</span></p>
<div class="cnblogs_code">
<pre># cat /etc/<span style="color: rgba(0, 0, 0, 1)">hosts
</span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">   localhost localhost.localdomain localhost4 localhost4.localdomain4
::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">         localhost localhost.localdomain localhost6 localhost6.localdomain6

</span><span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span> nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.65</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com

# </pre>
</div>
<p>&nbsp;</p>
<p id="u3b1f6fe3" class="ne-p">&nbsp;</p>
<p id="u601acf09" class="ne-p"><span class="ne-text">这个时候进行ping测试,发现每次ping都是解析第一个地址<br></span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">ping</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
PING nccztsjb</span>-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>) <span style="color: rgba(128, 0, 128, 1)">56</span>(<span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">) bytes of data.
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">1</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.048</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">2</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.045</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span>^<span style="color: rgba(0, 0, 0, 1)">C
</span>--- nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> <span style="color: rgba(0, 0, 255, 1)">ping</span> statistics ---
<span style="color: rgba(128, 0, 128, 1)">2</span> packets transmitted, <span style="color: rgba(128, 0, 128, 1)">2</span> received, <span style="color: rgba(128, 0, 128, 1)">0</span>% packet loss, <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)"> 999ms
rtt min</span>/avg/max/mdev = <span style="color: rgba(128, 0, 128, 1)">0.045</span>/<span style="color: rgba(128, 0, 128, 1)">0.046</span>/<span style="color: rgba(128, 0, 128, 1)">0.048</span>/<span style="color: rgba(128, 0, 128, 1)">0.007</span><span style="color: rgba(0, 0, 0, 1)"> ms
# <span style="color: rgba(0, 0, 255, 1)">ping</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
PING nccztsjb</span>-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>) <span style="color: rgba(128, 0, 128, 1)">56</span>(<span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">) bytes of data.
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">1</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.047</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">2</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.087</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span>^<span style="color: rgba(0, 0, 0, 1)">C
</span>--- nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> <span style="color: rgba(0, 0, 255, 1)">ping</span> statistics ---
<span style="color: rgba(128, 0, 128, 1)">2</span> packets transmitted, <span style="color: rgba(128, 0, 128, 1)">2</span> received, <span style="color: rgba(128, 0, 128, 1)">0</span>% packet loss, <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)"> 999ms
rtt min</span>/avg/max/mdev = <span style="color: rgba(128, 0, 128, 1)">0.047</span>/<span style="color: rgba(128, 0, 128, 1)">0.067</span>/<span style="color: rgba(128, 0, 128, 1)">0.087</span>/<span style="color: rgba(128, 0, 128, 1)">0.020</span><span style="color: rgba(0, 0, 0, 1)"> ms
# <span style="color: rgba(0, 0, 255, 1)">ping</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
PING nccztsjb</span>-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>) <span style="color: rgba(128, 0, 128, 1)">56</span>(<span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">) bytes of data.
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">1</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.060</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">2</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.057</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span>^<span style="color: rgba(0, 0, 0, 1)">C
</span>--- nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> <span style="color: rgba(0, 0, 255, 1)">ping</span> statistics ---
<span style="color: rgba(128, 0, 128, 1)">2</span> packets transmitted, <span style="color: rgba(128, 0, 128, 1)">2</span> received, <span style="color: rgba(128, 0, 128, 1)">0</span>% packet loss, <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)"> 999ms
rtt min</span>/avg/max/mdev = <span style="color: rgba(128, 0, 128, 1)">0.057</span>/<span style="color: rgba(128, 0, 128, 1)">0.058</span>/<span style="color: rgba(128, 0, 128, 1)">0.060</span>/<span style="color: rgba(128, 0, 128, 1)">0.007</span><span style="color: rgba(0, 0, 0, 1)"> ms
# </pre>
</div>
<p>&nbsp;</p>
<p id="uba509e80" class="ne-p">&nbsp;</p>
<p id="u0950e24b" class="ne-p"><span class="ne-text">这就说到这个工作原理了:</span></p>
<p id="ue8e6b09b" class="ne-p">&nbsp;</p>
<pre class="ne-codeblock language-bash" data-language="bash">只有当第一个无法解析的时候,才会解析第2个IP</pre>
<p id="u9ce9b16f" class="ne-p">&nbsp;</p>
<p id="ud7bee40b" class="ne-p">&nbsp;</p>
<p id="u196463b6" class="ne-p"><span class="ne-text">比如:将第一个IP地址,写一个无法解析的地址,那么就解析到第2个IP了</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/<span style="color: rgba(0, 0, 0, 1)">hosts
</span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">   localhost localhost.localdomain localhost4 localhost4.localdomain4
::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">         localhost localhost.localdomain localhost6 localhost6.localdomain6

</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span> nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.65</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com

# <span style="color: rgba(0, 0, 255, 1)">ping</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
PING nccztsjb</span>-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span>) <span style="color: rgba(128, 0, 128, 1)">56</span>(<span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">) bytes of data.
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from www.website.com (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">1</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.838</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from www.website.com (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">2</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.350</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from www.website.com (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">3</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.289</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span>^<span style="color: rgba(0, 0, 0, 1)">C
</span>--- nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> <span style="color: rgba(0, 0, 255, 1)">ping</span> statistics ---
<span style="color: rgba(128, 0, 128, 1)">3</span> packets transmitted, <span style="color: rgba(128, 0, 128, 1)">3</span> received, <span style="color: rgba(128, 0, 128, 1)">0</span>% packet loss, <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)"> 2000ms
rtt min</span>/avg/max/mdev = <span style="color: rgba(128, 0, 128, 1)">0.289</span>/<span style="color: rgba(128, 0, 128, 1)">0.492</span>/<span style="color: rgba(128, 0, 128, 1)">0.838</span>/<span style="color: rgba(128, 0, 128, 1)">0.246</span><span style="color: rgba(0, 0, 0, 1)"> ms
# </pre>
</div>
<p>&nbsp;</p>
<p id="ufabc33fa" class="ne-p">&nbsp;</p>
<p id="udad76550" class="ne-p"><span class="ne-text">将第2个IP地址也修改为一个无法解析的IP地址,就解析到第3个了</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/<span style="color: rgba(0, 0, 0, 1)">hosts
</span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">   localhost localhost.localdomain localhost4 localhost4.localdomain4
::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">         localhost localhost.localdomain localhost6 localhost6.localdomain6

</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span> nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.65</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com

# <span style="color: rgba(0, 0, 255, 1)">ping</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
PING nccztsjb</span>-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.65</span>) <span style="color: rgba(128, 0, 128, 1)">56</span>(<span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">) bytes of data.
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from www.website.com (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.65</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">1</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.379</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span><span style="color: rgba(128, 0, 128, 1)">64</span> bytes from www.website.com (<span style="color: rgba(128, 0, 128, 1)">172.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.65</span>): icmp_seq=<span style="color: rgba(128, 0, 128, 1)">2</span> ttl=<span style="color: rgba(128, 0, 128, 1)">64</span> <span style="color: rgba(0, 0, 255, 1)">time</span>=<span style="color: rgba(128, 0, 128, 1)">0.315</span><span style="color: rgba(0, 0, 0, 1)"> ms
</span>^<span style="color: rgba(0, 0, 0, 1)">C
</span>--- nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> <span style="color: rgba(0, 0, 255, 1)">ping</span> statistics ---
<span style="color: rgba(128, 0, 128, 1)">2</span> packets transmitted, <span style="color: rgba(128, 0, 128, 1)">2</span> received, <span style="color: rgba(128, 0, 128, 1)">0</span>% packet loss, <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)"> 1000ms
rtt min</span>/avg/max/mdev = <span style="color: rgba(128, 0, 128, 1)">0.315</span>/<span style="color: rgba(128, 0, 128, 1)">0.347</span>/<span style="color: rgba(128, 0, 128, 1)">0.379</span>/<span style="color: rgba(128, 0, 128, 1)">0.032</span><span style="color: rgba(0, 0, 0, 1)"> ms
# </pre>
</div>
<p>&nbsp;</p>
<p id="u2be9041a" class="ne-p">&nbsp;</p>
<p id="u0b51d3eb" class="ne-p"><span class="ne-text">将3个IP地址,都换成无法ping通的地址,这个时候,就是还是解析第一个地址,只不过是丢包的</span></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/<span style="color: rgba(0, 0, 0, 1)">hosts
</span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span><span style="color: rgba(0, 0, 0, 1)">   localhost localhost.localdomain localhost4 localhost4.localdomain4
::</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">         localhost localhost.localdomain localhost6 localhost6.localdomain6

</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span> nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.18</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
</span><span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.65</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com

# <span style="color: rgba(0, 0, 255, 1)">ping</span><span style="color: rgba(0, 0, 0, 1)"> www.website.com
PING nccztsjb</span>-node-<span style="color: rgba(128, 0, 128, 1)">23</span> (<span style="color: rgba(128, 0, 128, 1)">12.20</span>.<span style="color: rgba(128, 0, 128, 1)">58.83</span>) <span style="color: rgba(128, 0, 128, 1)">56</span>(<span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">) bytes of data.
</span>^<span style="color: rgba(0, 0, 0, 1)">C
</span>--- nccztsjb-node-<span style="color: rgba(128, 0, 128, 1)">23</span> <span style="color: rgba(0, 0, 255, 1)">ping</span> statistics ---
<span style="color: rgba(128, 0, 128, 1)">2</span> packets transmitted, <span style="color: rgba(128, 0, 128, 1)">0</span> received, <span style="color: rgba(128, 0, 128, 1)">100</span>% packet loss, <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)"> 999ms

# </pre>
</div>
<p>&nbsp;</p>
<p id="u43193be0" class="ne-p">&nbsp;</p>
<p id="u3589b439" class="ne-p"><span class="ne-text">所以,这里的解析的逻辑,<span style="background-color: rgba(255, 255, 0, 1)">本质上是,第一个能ping通,就返回第一个,第一个ping不通,就下一个,依次类推,间接的实现了高可用了,但是,不是负载均衡</span></span></p>
<p id="u3a21ed85" class="ne-p">&nbsp;</p>
<p id="u19d4ffd2" class="ne-p"><span class="ne-text">如果都不通,解析的还是第一个地址</span></p>
</div><br><br>
来源:https://www.cnblogs.com/chuanzhang053/p/17505044.html
頁: [1]
查看完整版本: linux中,如何在/etc/hosts中将一个域名解析为多个IP地址?工作原理是什么?