今日、Linuxボックスを再起動しました。再起動後、Linuxボックスにはネットワーク接続がありません。
これが私がこれまでに試したことです:
他のコンピューターで動作する別のイーサネットケーブルを使用します。変化なし。
NetworkManager(KDE)で、有線ネットワーク接続を削除して再作成します。うまくいきませんでした。画面の右下隅にシステム通知がまだ表示されます
Network Interface
Connection New Wired Connection failed
> Sudo /etc/init.d/networking restart
正常に再起動したようですが、まだネットワーク接続がありません。/etc/network/interfaces
を確認しました。そこにある唯一のコードは、インターネットがそれがそうであるはずであると言っているものです:
auto lo
iface lo inet loopback
GoogleのパブリックDNSサーバーの1つにpingを実行して、それがDNSの問題だけではないことを確認しました
$ ping 8.8.8.8
connect: Network is unreachable
DNSの問題ではないようです。
[〜#〜] new [〜#〜]ルーティングを修正します。 route
コマンドを使用して、ルーターのIPアドレスを指すデフォルトゲートウェイを追加しました(@chaosに感謝)。
$ /sbin/route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
[〜#〜] new [〜#〜] IPアドレスを持っているかどうかを確認
$ /sbin/ifconfig -a
eth0 Link encap:Ethernet HWaddr 74:d4:35:5f:0b:09
inet6 addr: fe80::76d4:35ff:fe5f:b09/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2999 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:1711 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:365026 (356.4 KiB) TX bytes:0 (0.0 B)
Interrupt:73 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4913 errors:0 dropped:0 overruns:0 frame:0
TX packets:4913 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1559718 (1.4 MiB) TX bytes:1559718 (1.4 MiB)
IPv6アドレスはあるがIPv4アドレスはないようですか? eth0
にはinet addr:
で始まる行があるはずですが、ありません。
それでは、どうすればIPアドレスを取得できますか?
役立つかもしれない(またはそうでないかもしれない)いくつかの詳細情報を次に示します。
システム情報
$ uname -a
Linux mocha 3.2.0-4-AMD64 #1 SMP Debian 3.2.65-1 x86_64 GNU_Linux
イーサネットコントローラー
$ lspci | grep -i eth
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
次に何をすればいいですか?
私は(このコマンドはすべてrootとして)ifconfig -a
インターフェースにIPアドレスがあるかどうかを確認します。問題が見つからない場合は、問題があればnetstat -rn
ルートが正しいかどうかを確認します。もしそうなら、私はiptables -L
許可していないファイアウォールルールがあるかどうかを確認します。すべて問題なければ、IPアドレスがルーターネットワークに属していない可能性があります。
connect: Network is unreachable
は、そのネットワークへの欠落したルート(この場合はデフォルトのルート)を指します。
使用する:
route -n
現在のルーティングテーブルを表示します。次のようなルートがあるはずです。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 <gateway-ip> 0.0.0.0 UG 0 0 0 eth0
<gateway-ip>
はルーター/ゲートウェイのIPアドレスです。また、システムに複数のネットワークインターフェイスがある場合は、Iface
も異なる場合があります。
ただし、次のコマンドを使用して、デフォルトルートを手動で追加します。
route add default gw <gateway-ip>
ここでの問題は、有線インターフェース(eth0)にIPv4アドレスがないないことです。 IPv4ルートを手動で追加しましたが、IPv4アドレスがないと、(システムの)ソースIPにIPアドレスを割り当てることができないため、トラフィックをルーティングできません。
環境の詳細情報がわからない場合(DSL接続を使用していますか?企業ネットワークに参加していますか?だれがIPアドレスを提供する必要がありますか?)再起動する前に、静的に構成されたIPアドレスまたは機能しているものがあると思いますDHCPサーバー。静的に構成されたアドレス(構成には表示されません)があった場合、再起動後に失われました。
IPv6アドレスが表示されるのは、そのアドレスが「自動構成」されているためです。まだ設定していないため、有線インターフェースはローカルネットワークとの通信に使用できるインターフェースを作成するだけです。
入力したifconfig情報から、ネットワークカードがイーサネットパケットを受信しているが送信していないようです。奇妙なことに、それはまた多くのドロップされたパケットを示しています。
手始めに、私はあなたが次のことをすることをお勧めします:
ネットワークIPアドレス指定スキームの情報を取得します。ネットワーク管理者に問い合わせるか、ISPから提供された情報を確認してください。または、(太字の場合)tcpdump -ni eth0
を実行してネットワーク上のネットワークトラフィックをリッスンし、システムが受信するパケットに基づいて内部ネットワークのアドレスを推測することもできます。
これは非常に一般的であるため、これからはネットワークがプライベートIPアドレスの範囲にあると仮定します。現在、多くのネットワークは192.168.1.0/24のスペース範囲で事前構成されています。つまり、IPアドレスは192.168.1.1で始まり、192.168.1.254で終わります。
Network Managerを使用して(つまり、デスクトップを使用して)、または/etc/network/interfaces
を適切に構成して、静的IPアドレスとゲートウェイでネットワークインターフェイスを構成します。これは Debian Wiki で完全に説明されています。
注:ip addr add 192.168.1.15 dev eth0; ip route add default via 192.168.1.1
を実行して手動で構成することもできます。しかし、これはシステムの再起動後もできません。
パケットを送信してゲートウェイに到達するかどうかを確認してください。これは、ゲートウェイがping -c 10 192.168.1.1
を実行して192.168.1.1であると想定して、簡単に行うことができます。コマンドが10個のテストすべてが正常に機能したことを返した場合は、ゲートウェイを確認できます。
次に、よく知られているパブリックIPアドレスにアクセスしてみます。たとえば、Google DNSサーバーはping -c 10 8.8.8.8
を実行しています。これが機能しない場合は、traceroute -n 8.8.8.8
を使用してトレーステストを実行し、パケットがドロップされている場所を確認してください。
最後に、Host www.google.com
またはping -c 10 www.google.com
を実行して、DNS解決を適切に実行できることを確認します。
すべてがステップ5までうまくいけば、将来の問題を診断するために ifupdown-extra パッケージをインストールすることをお勧めします。 network-test ツールがインストールされます。このツールは、ネットワークの問題や設定ミスがないかどうかを診断するために、上記のネットワークテストの多く(およびその他)を実行します。
静的IPアドレスを使用して接続できます。 DHCPを使用した動的IP構成であったと思われる以前の状態に戻してください。
これをする:
動的IPアドレスを使用するようにインターフェースを再構成します。
Network Managerがその仕事をするのを待ちます。デスクトップ環境では、失敗したかどうかを確認できますが、システムログで詳細情報を取得することもできます。より具体的には/ var/log/syslogです。 Network Managerログをフィルタリングすると、かなり多くの情報がわかります。grep NetworkManager /var/log/syslog
を実行して出力を確認するだけです。
network-test
を実行して、正しく接続されているかどうかを確認します
ネットワークに接続していない場合は、dhclient eth0
を実行しているIPアドレスを手動で要求して、IPアドレスが提供されるかどうかを確認してください。
上記のテストに基づいて、ネットワークで何が故障し、何が機能するかをよりよく理解し、それに応じてシステムを構成する必要があります。