의 파일을 수정하여 네트워크 인터페이스의 이름을 바꾸고 있습니다 /etc/sysconfig/network-scripts
.
- eth0-> nic0
- eth1-> nic1
수정 후 네트워크 스크립트의 내용은 다음과 같습니다.
# 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
는 트릭을 수행하지 않습니다.
이전 이름 ( 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
이전 인터페이스 이름을 보여줍니다.
답변
ip 명령을 사용하여 장치 이름을 바꿀 수 있습니다.
/sbin/ip link set eth1 down
/sbin/ip link set eth1 name eth123
/sbin/ip link set eth123 up
편집 :
내가 (및 정보를 제공 할 목적으로) 완전성과 후손을 위해 아래를 떠납니다하지만 난 확인했다 폭음의 의견 과 마르코 Macuzzo의 대답은 간단 인터페이스의 이름과 장치를 변경 있음을 / etc / sysconfig / network-scripts에 / ifcfg- eth0 (및 파일 이름 변경)은 hwaddr = 필드가 구성 파일에 포함되어있는 한 장치의 이름이 올바르게 지정되도록 합니다. 참조 된 업데이트 후에이 방법을 사용하는 것이 좋습니다.
다음에 다시 부팅 할 때도 작동하도록 udev 규칙을 구성해야 할 수도 있습니다. CentOS 7에서 udev의 경로는 /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"
nic 당 하나의 항목이 필요합니다. 올바른 MAC 주소를 사용하고 NAME 필드를 업데이트하십시오. “net.ifnames = 0 biosdevname = 0″을 사용하지 않은 경우 의도하지 않은 결과가 발생할 수 있으므로주의하십시오.
답변
실제로 가장 좋은 답변은 이미 게시 된 두 답변의 조합입니다. 네트워크 서비스를 다시 시작하지 않고 장치 이름을 변경하려면 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
변수가 설정되어 있고 올바른지 확인하십시오. 실제로 ifcfg 구성 파일을 읽어야하기 때문에 udev 규칙을 건드릴 필요가 없습니다 .60-net.rules
/etc/sysconfig/network-scripts
답변
이전 명명 규칙을 복원하려면 /etc/default/grub
파일 을 편집 하고 다음을 추가해야합니다.
net.ifnames=0 biosdevname=0
GRUB_CMDLINE_LINUX
변수 의 끝에서
답변
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\"/NAME=\"eth0\"/" /etc/sysconfig/network-scripts/ifcfg-eth0
MAC=$(cat /sys/class/net/eth0/address)
echo -n 'HWADDR="'$MAC\" >> /etc/sysconfig/network-scripts/ifcfg-eth0
답변
@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"
물론 다시로드하는 드라이버는 인터페이스에 따라 다릅니다.
답변
Vagrant / VirtualBox와 위의 방법으로 위를 시도했지만 어쨌든 이것이 내 개발 환경에서 전혀 작동하지 않았습니다.
이전 인터페이스 이름은 완전히 다시 시작할 때까지 내가 한 모든 것을 유지했습니다.
난에서 다음과 같은 규칙 추가 /etc/udev/rules.d/60-persistent-net.rules
(:에 따라 https://access.redhat.com/solutions/112643 )
내 목표는 인터페이스에 PCI 주소를 기반으로 지정된 이름을 부여하는 것이 었습니다.
예:
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:09.0", NAME:="int0"
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:10.0", NAME:="ext0"
이러한 규칙을 추가 한 후 다음 명령을 실행했습니다.
ip link set eth0 down
udevadm control --reload-rules
udevadm trigger
ip link set int0 up
명령 Cannot find device "int0"
에 오류 메시지가있었습니다 ip link set * up
. 그리고 /var/log/messages
나는 다음과 같은 메시지를 보았습니다.
Aug 16 17:08:41 localhost ansible-command: Invoked with creates=None executable=None _uses_shell=True strip_empty_ends=True _raw_params=ip link set eth0 down && udevadm control --reload-rules && udevadm trigger && ip link set int0 up#012 removes=None argv=None warn=True chdir=None stdin_add_newline=True stdin=None
Aug 16 17:08:41 localhost NetworkManager[6989]: <info> [1565975321.5971] device (eth6): state change: disconnected -> unavailable (reason 'carrier-changed', sys-iface-state: 'managed')
Aug 16 17:08:41 localhost systemd-udevd: Network interface NamePolicy= disabled on kernel command line, ignoring.
그러나 다음은 VirtualBox를 통해 VM에 액세스하고 다음 명령을 실행하여 커널 모듈을 제거하고 다시 추가하여 작동했습니다.
rmmod e1000
modprobe e1000
나는 다음 스레드에서 이것을 발견했다 : https://www.centos.org/forums/viewtopic.php?t=54695
내가 눈치 이상한 것은 그였다 lsmod
합니다 (주의 날 수 있습니다 Used by
)
[vagrant@node-01 ~]$ lsmod
Module Size Used by
e1000 137586 0