#Linux でホスト ファイルの変更に失敗した場合はどうすればよいですか?
1. Linux は、ローカル エイリアス /etc/hosts のホスト名を変更した後に有効にならないことがよくあります。解決策
Linux は、ローカル エイリアスの hostName を変更します。エイリアス /etc/hosts 多くの場合、有効になりません。
たとえば、/etc/hosts の内容は次のとおりです:
#192.68.1.10 message.xxx.com 192.68.1.11 message.xxx.com
しかし、ping message.xxx.com は依然として次のアドレスを指します。 192.68.1.10。
関連する推奨事項: 「linux チュートリアル」
# 通常、解決策は 2 つあります。
1). 再起動、これが最も直接的で信頼性が高く安定した方法ですが、再起動が不便な場合は 2 番目の方法を使用できます。
2). 次のように /etc/sysconfig/network ファイルを変更し、HOSTNAME を対応するエイリアスに変更します:
NETWORKING=yes HOSTNAME=host1
変更後にネットワーク サービスを再起動します
service network restart (本质是/etc/init.d/network)
3 ). サーバーを再起動してもまだ機能しない場合は、ローカル DNS キャッシュが原因である可能性があります。
nscd が有効かどうかを確認します: ps -ef|grep nscd
Linux nscd キャッシュ サービスを直接オフにします:
/etc/init.d/nscd stop
2. Linux DNS
Linux 自体には DNS キャッシュがありません。DNS キャッシュを使用したい場合は、サービス プログラム NSCD (ネーム サービス キャッシュ デーモン) をインストールする必要があります。
nscd は 3 つのサービス passwd グループ ホストをキャッシュします3 つのライブラリはソース /etc/passwd、/etc/hosts、および /etc/resolv.conf に対応し、各ライブラリは 2 つのキャッシュを保存します (1 つは見つかったレコード用、もう 1 つは見つからないレコード用)。各キャッシュにより存続時間 (TTL) が節約されます。
インストール:
yum install nscd
構成ファイル /etc/nscd.conf を変更し、DNS キャッシュを有効にし、この行を変更します
enable-cache hosts yes
nscd サービスが有効になっている場合は、DNS キャッシュが存在しますが、それ以外の場合は、DNS キャッシュは存在しません。
サービスの開始、停止、再起動
service nscd start | stop | restart
nscd 構成:
/etc/nscd.conf ファイルを編集し、次の行:
enable-cache hosts yes
Alibaba Cloud ホストの設定は次のとおりです:
[root@iZ2571ykq ~]# cat /etc/nscd.conf #logfile /var/log/nscd.log threads 6 max-threads 128 server-user nscd debug-level 5 paranoia no enable-cache passwd no enable-cache group no enable-cache hosts yes positive-time-to-live hosts 5 negative-time-to-live hosts 20 suggested-size hosts 211 check-files hosts yes persistent hosts yes shared hosts yes max-db-size hosts 33554432
関連パラメータの説明は次のとおりです:
logfile デバッグファイル名 : デバッグ情報を書き込むファイル名を指定します。
debug-level value: 必要なデバッグ レベルを設定します。
スレッド数: これは、リクエストの待機を開始したスレッドの数です。少なくとも 5 つのスレッドが作成されます。
server-user user: このオプションが設定されている場合、nscd は root ではなくこのユーザーとして実行されます。各ユーザーが個別のキャッシュ (-S パラメーター) を使用する場合、このオプションは無視されます。
enable-cache service bb465b611d06b065d5e0e67bdf17426c: 指定されたサービス キャッシュを有効または無効にします。
positive-time-to-live サービス値: 指定されたキャッシュ内のサービスのポジティブ項目 (成功したリクエスト) の TTL (存続時間) を設定します。値は秒単位です。値を大きくすると、キャッシュ ヒット率が増加し、平均応答時間が短縮されますが、キャッシュの一貫性の問題が増加します。
negative-time-to-live サービス値: 指定したキャッシュ内のネガティブ項目 (失敗したリクエスト) の TTL (存続時間) を設定します。値は秒単位です。システム データベースにない uid が所有するファイルがある場合 (Linux カーネル ソースを root として解凍する場合など)、パフォーマンスは大幅に向上します。キャッシュの整合性の問題を軽減するために、値を小さく保つ必要があります。
推奨サイズのサービス値: これは内部ハッシュ テーブルのサイズです。値は最適化のために素数のままにする必要があります。
check-files service bb465b611d06b065d5e0e67bdf17426c: 指定したサービスに属するファイルの変更チェックを有効または無効にします。これらのファイルは、/etc/passwd、/etc/group、および /etc/hosts です。
nscdの表示とクリア
nscdキャッシュDBファイルは/var/db/nscdの下にあります。
nscd -g 查看统计信息
nscd キャッシュをクリアします:
nscd -i passwd nscd -i group nscd -i hosts
もちろん、最初にキャッシュ ライブラリを削除するか、nscd サービスを停止します:
rm -f /var/db/nscd/hosts service nscd restart
または、nscd サービスを直接停止します。service nscd stop。
以上がLinux でホスト ファイルの変更が無効な場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。