재부팅하지 않고도 네트워크 인터페이스를 다시 로드할 수 있습니다.

재부팅하지 않고도 네트워크 인터페이스를 다시 로드할 수 있습니다.

저는 Arch Linux용 Raspberry Pi 2에서 BASH 스크립트를 작성하고 있습니다. 문제는 예를 들어 재부팅하지 않고 네트워크 인터페이스를 다시 로드하고 연결 시 네트워크 인터페이스(en0 및 wl0)라는 이름을 새로 지정하고 싶다는 것입니다 networkctl. 내가 찾은 해결책은 다음과 같습니다.

네트워크 인터페이스를 닫습니다.

ip link set <net_if> down ;

/etc/udev/rules.d/70-pertant-net.rules(또는 이에 상응하는 항목) 수정: 제 경우에는 10-network.rules입니다. 여기에는 다음이 포함됩니다.

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:aa:aa:aa:aa:aa", NAME="en0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="bb:bb:bb:bb:bb:bb", NAME="wl0"

새로고침

udevadm control --reload-rules ;

재트리거

udevadm trigger --attr-match=subsystem=net ;

네트워크 인터페이스를 시작합니다.

ip link set <net_if> up ;

하지만 내 RbPi2에서는 작동하지 않습니다.

나는 또한 다른 게시물에서 어느 시점에 삽입해야 한다는 것을 발견했습니다.

modprobe -r <driver module>

하지만 Wi-Fi 어댑터용 드라이버 모듈을 찾을 수 없습니다(해봤습니다 lsusb -v).

참고: 저는 Networkmanager를 사용하고 있지 않습니다. systemd(/etc/systemd/network/)를 사용하여 네트워크 인터페이스를 구성했습니다. 또한 systemd-networkd 서비스를 다시 로드해 보았습니다.

감사해요

답변1

네트워크 인터페이스용 드라이버를 얻으려면 다음을 사용 ethtool -i en0하고 "드라이버" 섹션을 찾으십시오.

root@odin ~ # ethtool -i eth0
driver: e1000e
version: 2.3.2-k
firmware-version: 0.13-4

여기 내 드라이버는 e1000e입니다.

이제 드라이버를 rmmod하고 다시 modprobe할 수 있습니다. 물론 이렇게 하면 네트워크 카운터도 재설정됩니다.

관련 정보