/etc/network/interfacesを変更しても効果はありません

/etc/network/interfacesを変更しても効果はありません

PC の IP アドレスを静的と DHCP の間で変更するには、/etc/network/interfaces ファイルを変更し、次のコマンドでネットワークを再起動するという投稿を多数読みました。

/etc/init.d/networking restart

ただし、これを実行すると、再起動は正常に行われるように見えますが、(たとえば、静的アドレスを使用する場合) IP アドレスは変更されません ( を使用ifconfig eth0)。

ただし、これを手動で行う場合は次のようになります。

sudo ifconfig eth0 192.168.3.20 netmask 255.255.255.0 up

その後は正常に動作しますが、ネットワーク ファイルから「auto eth0」行を削除した場合のみであり、それ以外の場合は DHCP が使用されます。

ネットワーク ファイルが使用されているようですが、静的 IP アドレスを取得できません :(

ネットワーク ファイルの内容は次のとおりです。

#auto eth0 COMMENTED OUT iface eth0 inet static address 192.168.3.21 (USING .21 HERE TO DISTINGUISH BETWEEN MANUAL AND NETWORKING) netmask 255.255.255.0 network 192.168.3.0 broadcast 192.168.3.255 gateway 192.168.3.1

何か間違ったことをしているのでしょうか?

答え1

あなたの間違いは、次の行を編集してしまったことです

       auto eth0

代わりに、そのままにしておく必要があります。ネットワークを機能させるためにDNSを追加することもできます。eth0スタンザに次の行を追加します。

       dns-nameservers 8.8.8.8 8.8.4.4

複数形のnameserverに注目してくださいs、および 2 つのネームサーバー間の句読点がない点です。Google のネームサーバーが気に入らない場合は、好きなものを選択できます。

service networking restartとの違いはifdown eth0 && ifup eth0ありません。/etc/init.d/networkingサービス ネットワーキングが再起動されたときに実行されるファイル には、次の行が含まれています。

       # Provides:          networking ifupdown
         ...........
        ifup $ifaces "$@"

などなど: つまり、service networking restartを使用しますifup/ifdown。 どちらの使い方も問題ありません。

関連情報