典型的なネットワークトラブルについて理解する

【連載コラム:Linuxを学ぼう(18)】
サーバーを扱う上で必須と言える技術が「Linux」。今回は前回に引き続きネットワーク関連のお話です。初学者が遭遇しやすい典型的なネットワークトラブルについて解説します。

最終更新日:2023年09月15日

前回は正常にネットワーク接続できている状態を確認しました。

今回は特に初学者が遭遇しやすい典型的なネットワークトラブルについて解説します。


IPアドレスが割り当てられていない

いくつかのディストリビューションでは、インストール時にネットワークインターフェースの自動起動が設定されないことがあります。この場合、システム起動時にネットワークインターフェースが有効化されてネットワークに接続し、IPアドレスの割り当てが行われるという一連の動作が実行されません。

対応方法はいくつかありますが、たとえばインターフェースデバイスenp0s3にIPアドレスが割り当てられていない場合、NetworkManagerのCLIツールnmcliコマンドで以下のように実行することでネットワークインターフェースを有効にできます。

$ sudo nmcli dev connect enp0s3
デバイス 'enp0s3' が '297c9686-a34f-3734-8931-89fa9b051d30' で正常にアクティベートされました。

参照するDNSが間違っている

DNSによる名前解決が正しく行えない理由はいくつかありますが、一つに参照するDNSが間違えている場合があります。参照しているDNSは/etc/resolv.confの記述で確認できます。

$ cat /etc/resolv.conf
# Generated by NetworkManager
search xxxx.jp
nameserver 192.168.11.1

この環境の場合、IPアドレスはルーターのDHCPサーバーからDHCPで自動設定されているため、DNSの参照先もDHCPで自動設定されています。ここが間違っているのであれば、DHCPサーバーの設定を見直す必要があります。

NetworkManagerによるresolv.confの自動設定とその抑止

最近のディストリビューションでは、ネットワーク周りの管理はNetworkManagerによって一元的に管理されているため、単に/etc/resolv.confを書き換えても、次回のシステム起動時にはresolv.confが再生成されて設定が元に戻ってしまいます。

根本的に直すのであれば、NetworkManagerの管理ツールを使って正しい参照先DNSのIPアドレスを設定する必要がありますが、NetworkManagerによるresolv.confの上書きを抑止する設定も可能です。設定方法はNetworkManagerのドキュメントを参照してください

外部から接続できない

IPアドレスが正しく設定されており、pingコマンドやdigコマンドなどを使ってネットワークへの接続が正しくできていることを確認できても、外部からサーバーとして接続しようとすると接続できない、ということがよくあります。これはパケットフィルタリングが有効になっていて、外部からの接続を受け付けないようになっているためです。

パケットフィルタリングはディストリビューションによって使うツールが異なります。firewalld、nftables、iptables、ufwなど、ディストリビューションに合った設定を行って、外部からの接続を受け付けるようにする必要があります。

一番簡単な問題の切り分けは、一度パケットフィルタリングの設定をすべて無効にして、すべてのパケットを受け入れるようにすることです。安全なネットワークに接続していることを確認した上で行ってみてください。もし接続できるようになった場合には、使用するプロトコルに応じた適切なポート番号だけ接続を許可するように設定してください。

ここでは初学者が陥りがちな典型的なネットワークトラブルについて解説しました。ネットワークトラブルの症状や原因は多岐に渡るので、まずは基本的なネットワーク通信の確認、問題の切り分け、原因の特定と進められるよう、各種ツール、コマンドの使い方を覚えるようにしましょう。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

バックナンバー

第20回:Webサーバーを動かす

第19回:Webサーバーをインストールする

第18回:典型的なネットワークトラブルについて理解する

第17回:ネットワークの状態確認を理解する

第16回:アクセス権に関わる様々なことについて理解を深める

第15回:ファイルのアクセス権を理解する

第14回:パッケージをアップデートする dnf編

第13回:PAMを理解する

第12回:グループとは何かを理解する

第11回:sudoコマンドについて理解する

第10回:suコマンドで特権ユーザーになる

第9回:ユーザー権限を理解する

第8回:SSHによるリモートログイン

第7回:Linuxインストール後にやること

第6回:Linuxイストールの実際

第5回:Linuxインストールの準備

第4回:Linux学習のためのネットワーク環境

第3回:学習環境を用意する

第2回:Linuxをどう学ぶのか

第1回:Linuxを学ぼう

ページトップへ