
修正に合格しました/etc/sysconfig/network-scripts
。
- eth0 - >ネットワークカード0
- eth1 - >ネットワークカード1
変更されたネットワークスクリプトの内容は次のとおりです。
# cat /etc/sysconfig/network-scripts/ifcfg-nic0
DEVICE=nic0
BOOTPROTO=static
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
USERCTL=no
IPV6INIT=no
MASTER=bond0
SLAVE=yes
新しい設定を有効にするには、再起動してください。しかし、この設定をどのように有効にできますか?いいえ再起動?
Aはsystemctl restart network
これを実行できませんでした。
oldname() でインターフェイスを閉じることができますが、古い名前や新しい名前の指定に関係なく、ifdown eth0
次ifup
のメッセージが表示されます。
エラー:[/etc/sysconfig/network-scripts/ifup-eth]デバイスnic0が存在しないため、初期化が遅れます。
/etc/init.d/network status
次の出力を表示します。
Configured devices:
lo bond0 nic0 nic1
Currently active devices:
lo eth0 eth1 bond0
両方ifconfig
とip a
以前のインターフェイス名を表示します。
答え1
ip コマンドを使用してデバイス名を変更できます。
/sbin/ip link set eth1 down
/sbin/ip link set eth1 name eth123
/sbin/ip link set eth123 up
編集する:
完全性と後世のために(そして情報提供の目的で)次の内容を残す予定ですが、確認しました。swillについてのコメントそしてマルコ幕組の回答デバイス名を正しく指定するには、インターフェイス /etc/sysconfig/network-scripts/ifcfg-eth0 の名前とデバイスを変更し、ファイル名を変更します。構成ファイルにhwaddr =フィールドを含めるだけです。参照が更新されたら、この方法を使用することをお勧めします。
次回の再起動時に正しく機能するようにudevルールを設定したことを確認することもできます。 udevパスはCentOS 7から/usr/lib/udev/rules.d/60-net.rulesに移動されましたが、まだ同じ方法で管理できます。もしあなたならカーネルの起動文字列に "net.ifnames=0 biosdevname=0" を追加します。ネットワークカードの以前の命名方式に戻るには、次の手順を実行します。
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"
そしてそれに置き換え
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:50:56:8e:3f:a7", NAME="eth123"
各ネットワークカードに1つのエントリが必要です。正しい MAC アドレスを使用し、名前フィールドを更新してください。意図しない結果が生じる可能性があるため、「net.ifnames=0 biosdevname=0」を使用しない場合は注意してください。
答え2
実際、最良の答えはすでに投稿された2つの答えを組み合わせたものだと思います。ネットワークサービスを再起動せずにデバイス名を変更するには、ip link
James Shewey()が提案したコマンドを使用してくださいip link set <old_device_name> name <new_device_name>
。
Red Hat Linuxで再起動後も変更を保持するには、/etc/sysconfig/network-scripts/
ファイル名をifcfg_<old_device_name>
に変更ifcfg_<new_device_name>
し、DEVICE
内部変数をに変更します<new_device_name>
。HWADDR
udevルールに触れる必要はありません。これは、60-net.rules
ifcfg設定ファイルが実際に読み込まれる場所であるためです/etc/sysconfig/network-scripts
。
答え3
ip link set ens33 down
ip link set ens33 name eth0
ip link set eth0 up
mv /etc/sysconfig/network-scripts/ifcfg-{ens33,eth0}
sed -ire "s/NAME=\"ens33\"/NAME=\"eth0\"/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -ire "s/DEVICE=\"ens33\"/DEVICE=\"eth0\"/" /etc/sysconfig/network-scripts/ifcfg-eth0
MAC=$(cat /sys/class/net/eth0/address)
echo -n 'HWADDR="'$MAC\" >> /etc/sysconfig/network-scripts/ifcfg-eth0
答え4
@James Sheweyの答えが正しいアプローチであるようです。
構成ファイルを使用して再ロードをトリガーする場合は、/etc/sysconfig/network-scripts
コメントに記載されている@Tom Huntなど、カーネルモジュールをアンロードしてロードすることも機能します。
service network stop
modprobe -r igb
modprobe igb
service network start
システムにリモートでアクセスする場合は、nohupからすべてのコマンドを実行する必要があります。それ以外の場合、システムはロックされます。
nohup sh -c "service network stop && modprobe -r igb && modprobe igb ; service network start"
もちろん、リロードするドライバはインターフェイスによって異なります。