ウェブサイト検索

Linuxでインターネット接続をトラブルシューティングする方法


Linuxをインストールしたが、インターネットにアクセスできませんか?このトラブルシューティングガイドに従って、Linuxデスクトップのネットワークの問題を修正してください。

今日の世界では、インターネット接続がネットワーク上での情報の使用と転送を可能にしています。ネットワークに焦点を当てた役割で働くことは、システム管理者が潜在的な問題を認識し、それらをトラブルシューティングできる能力を求められます。

したがって、日常の活動において効率的なコミュニケーションが求められる環境では、Linux/Unixのネットワーキングツールとそれを使ってインターネット接続の問題を解決する方法を知っておく必要があります。この記事は、Linuxにおける可能なネットワークの問題を特定し、それらをトラブルシュートする方法を提供します。

入出力接続のトラブルシューティング

問題を解決する前に、問題がクライアント側にあるのかサーバー側にあるのかを特定することが重要です。このセクションでは、Linux上での送信および受信接続の問題を特定する方法について説明します。

出ている接続の問題を特定してトラブルシューティングする

ウェブサイトにアクセスしようとしているクライアントとして、時々ウェブサイトが利用できないことがあります。問題は名前解決にあるか、接続がローカルネットワークの外にあることが原因かもしれません。

正確な理由を特定するには、pingコマンドを使用してICMPエコー要求を送信し、応答を待つことから始めることができます。

ping <ip_add>

ネットワーク接続がない場合やパケットロスが100パーセントの場合、別の可能性としてネットワークインターフェースが存在しないことがあります。ipコマンドを実行して、システム上のすべての利用可能なインターフェースの状態を確認してください。

ip add show

コマンドの出力は、各ネットワークインターフェースの状態をUPまたはDOWNとして表示します。出力でDOWNの状態のインターフェースには、割り当てられたIPアドレスがないため、接続の問題の可能性のある理由となります。

インターネットの状態を変更することで問題を解決できます。次のコマンドを実行してください:

sudo ifup <interface_name>

さて、インターフェースが利用可能であるにもかかわらずサーバーにアクセスできない場合は、pingコマンドを使用してルーターのIPアドレスを見つけ、到達可能かどうかを確認してください:

ping <router's_ip_add>

パケットは、物理的に切断されているか、電源がオフである場合、ルーターに到達しません。接続が成功した場合は、ルーターの向こう側の任意のシステムにpingを送り、そのシナリオでウェブサイトが利用できない場合は、DNSサービスの問題が原因である可能性があります。

サーバーに到達可能ですが接続が遅い場合、tracerouteコマンドを実行することで、各中間ノードにパケットが到達するまでの時間を表示し、根本原因を特定できます。

traceroute <ip_add>

受信接続の問題をトラブルシューティングする

ほとんどの組織はLinuxシステムをサーバーとして設定し、高可用性の要件があります。例えば、ウェブサイトをホストするApacheサーバーは、クライアントがアクセスできなくなると、受信ネットワークに問題が発生することがあります。ウェブサイトのホスト名は、IPアドレスに名前を解決する公開DNSサーバーに登録されています。

名前とアドレスの解決が正常に機能している場合、Linuxクライアントからサーバーにpingを送り、外部からの可用性を確認できます。同様に、Linuxクライアントからnmapコマンドを使用してhttpdサービスが実行中かどうかを確認できます。

Nmapは、ネットワーク上で実行されているサービスをチェックするためにネットワーク管理者が使用する最も強力で多用途なツールです。しかし、それは侵入者にシステム関連の情報を提供できるクラッカーでもあります。

ツールを実行して、サーバーポートが外部接続に対して利用可能かどうか確認できます。ホスト名またはIPアドレスを使用して、実行中のサービス/ポートをスキャンしてください:

nmap <hostname/ip_add>

もしTCPポート80および443がHTTPおよびHTTPSサービスのために稼働している場合、それはサービスが受信接続を待機していることを示しています。この状況では、サービスがメインの設定ファイル内でどのように構成されているかを確認する必要があります:/etc/httpd/conf/httpd.conf.

さらに、TCPポート80および443が存在しないことは、ファイアウォールがポートをブロックしてフィルタリングしていることを示しており、Nmapの出力での閉じた状態は、httpdサービスが実行されていないか、ポートをリッスンしていないことを意味します。

DNSサーバーの問題をトラブルシューティングする

もしウェブサイトのIPアドレスにpingできるのにブラウザでアクセスできない場合、ホスト名解決の問題があります。インターネットを介して通信するクライアントとサーバーは、DNSサーバーと通信することによってホスト名からアドレスへの解決を行います。

Linux/Unixオペレーティングシステムでは、DNSサーバーを手動で入力するか、インターフェースを起動する際にDHCPサーバーに自動割り当てを要求することで構成します。いずれの場合も、DNSサーバーのアドレスは/etc/resolv.confファイル内で利用可能です。

したがって、ウェブサイトに接続しようとするたびに、/etc/hostsファイルでホストを探し、その後resolv.confファイルでDNSサーバーアドレスを一つずつ検索します。ホストが見つからない限り、サーバーをチェックし続け、"ホストが見つかりません"というエラーを返します。

DNS関連の問題をデバッグするには、まずpingコマンドを使用してDNSサーバーに到達可能かどうかを確認します。以下のように:

ping -c <dns_server_address>

サーバーが正常に動作しているか、digやhostコマンドを使用して名前からIPアドレスへの解決を行っているか確認してください。

dig @X.X.X.X www.google.com 
host www.google.com X.X.X.X

もしNetworkManagerサービスが有効で、間違ったDNSサーバーのIPアドレスが見つかった場合、resolv.confファイルにエントリを追加することはできません。これは、NetworkManagerがファイルのエントリを上書きし、自動割り当てのためにDHCPサーバーに接続するからです。

この問題を解決するには、インターフェースファイルを開いてPEERDNS=noを追加し、新しいアドレスをDNS1=X.X.X.Xに設定します。

On CentOS/Fedora/RHEL
sudo vim /etc/sysconfig/network-scripts/<interface_name>

On Ubuntu/Debian
sudo vim /etc/network/interfaces

ファイルを開いたら、次の行を追加してください:

PEERDNS=no
DNS1=X.X.X.X

前述のコマンドスニペットは、DHCPがDNSアドレスを上書きするのを防ぎ、resolv.confファイルを直接編集できるようにします。

Linuxにおけるファイアウォールのトラブルシューティング

Linuxのデフォルトのファイアウォール設定は、TCPポート80および443へのすべての着信接続をブロックする可能性があります。TCPポート用のルールを追加する前に、/etc/sysconfig/iptablesファイル内にDROP/REJECTルールがないか確認してください。問題を解決するために、オープンポート用のルールをDROP/REJECTの上に移動してください。

さらに、特定のホストからのパケットがファイアウォールによってドロップされているかどうかも確認できます。iptablesファイルでは、IPアドレスとDROP/ACCEPT値の後に-sおよび-jフラグが続くものを探してください。ルールを編集するか、ホスト専用の新しいルールを作成し、他のルールの上に配置して例外とすることができます。

Linuxでのネットワーク問題の修正

この記事では、Linuxにおけるインターネット接続の問題を特定し修正するための初級から上級レベルの技術を扱っています。トラブルシューティングを始める前に、問題の根本原因を特定し、効果的に対処することが重要です。

Linuxに搭載されているさまざまなネットワークツールについて学ぶことで、トラブルシューティングの問題に関する知識を深め、問題を特定して解決する際により創造的になれます。

関連記事: