수정을 통과했습니다 /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"
각 네트워크 카드마다 하나의 항목이 필요합니다. 올바른 MAC 주소를 사용하고 이름 필드를 업데이트하십시오. 의도하지 않은 결과가 발생할 수 있으므로 "net.ifnames=0 biosdevname=0"을 사용하지 않는 경우 주의하십시오.
답변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"
물론 다시 로드할 드라이버는 인터페이스에 따라 다릅니다.