wlan0이 돌아올 때 dhclient를 실행하는 방법(그러나 이미 이전 주소가 있음)

wlan0이 돌아올 때 dhclient를 실행하는 방법(그러나 이미 이전 주소가 있음)

Devuan Chimaera Linux에서 다음을 구성합니다.

/etc/네트워크/인터페이스

auto wlan0
iface wlan0 inet dhcp
        pre-up /sbin/wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
        post-down /usr/bin/killall -q wpa_supplicant

/etc/wpa_supplicant/wpa_supplicant.conf

network={
    ssid="MySSID"
    psk="redacted"
}   
ctrl_interface=/run/wpa_supplicant
update_config=1

dhclient는 인터페이스가 처음 나타날 때만 실행됩니다.

를 사용하면 ifconfig wlan0 down종료 시 IP 주소가 유지되고 ifconfig wlan0 updhclient를 실행하지 않고도 인터페이스가 복원됩니다.

불행하게도 dhclient가 제공하는 기본 경로를 기반으로 계산된 사용자 지정 경로를 추가하는 사용자 지정 /etc/dhcp/dhclient-exit-hooks.d/wlan0-routes가 있습니다.

wlan0을 끄면 예상대로 사용자 지정 경로가 손실됩니다.

wlan0을 시작하면 dhclient가 실행되지 않으므로 사용자 지정 경로가 다시 추가되지 않습니다.


고쳐 쓰다:

ifconfig wlan0 down(이 문제 발생) 의 동작에 차이가 있는 것 같습니다 ifdown wlan0.

root@demo:~# ifconfig wlan0 down
root@demo:~# ip addr show wlan0 
9: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:0e:8e:4c:f6:a3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.98.196/24 brd 192.168.98.255 scope global dynamic wlan0
       valid_lft 7130sec preferred_lft 7130sec

root@demo5:~# ifconfig wlan0 up
...
root@demo5:~# ifdown wlan0
root@demo5:~# ip addr show wlan0 
9: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:0e:8e:4c:f6:a3 brd ff:ff:ff:ff:ff:ff

ifdown wlan0호출하는 대신 사용하면 ifconfig wlan0 down dhclient인터페이스를 열 때 모든 것이 예상대로 작동합니다.

ifconfig wlan0 down이들그리고 그리고 의 차이점은 무엇인가요 ifdown wlan0?

답변1

그 사람의 말을 인용하자면:

ifup 및 ifdown 명령은 각각 /etc/sysconfig/network 및 /etc/sysconfig/network-scripts/ifcfg-<configuration> 파일의 인터페이스 정의를 기반으로 네트워크 인터페이스를 구성(또는 구성 해제)하는 데 사용할 수 있습니다.

하지만

ifconfig는 커널 상주 네트워크 인터페이스를 구성하는 데 사용됩니다. 필요에 따라 인터페이스를 설정하기 위해 시작 시 사용됩니다. 그 이후에는 일반적으로 디버깅할 때나 시스템 조정이 필요할 때만 필요합니다.

ifconfig는 net-tools(네트워크 유틸리티)의 일부입니다.https://net-tools.sourceforge.io/

나는 이것이 iproute2로 대체된 오래되고 더 이상 사용되지 않는 도구라고 생각합니다.https://wiki.linuxfoundation.org/networking/iproute2

답변2

~에서https://access.redhat.com/solutions/27166

"ifconfig up eth0"과 "ifup eth0"의 차이점은 무엇입니까?

해결하다:

"ifconfig" 명령과 "ifup" 또는 "ifdown" 명령은 네트워크 인터페이스를 활성화합니다. "ifconfig"는 네트워크 인터페이스를 직접 제어하지만 "ifup" 또는 "ifdown"은 "/etc/sysconfig/network-scripts/ifup-" 또는 "ifdown-" 스크립트를 실행합니다. 이 스크립트는 ip 명령을 사용합니다.

"ifconfig" 및 "ip" 명령은 ioctl()을 사용하여 네트워크 인터페이스를 활성화하거나 비활성화합니다. 'ifconfig'에는 네트워크 인터페이스 'IFF_UP | RUNNING' 태그가 지정되었지만 'ip'에는 'IFF_UP' 태그가 지정되었습니다.

"ifconfig up eth0"은 eth0을 활성화하지만 IP 주소를 설정하지는 않지만 "ifup"은 "ifup-eth*" 스크립트를 사용하기 때문에 "ifup eth0"은 ifcfg-eth0을 기반으로 IP 주소 또는 기타 옵션을 설정합니다.

ifup 명령은 네트워크 스크립트 디렉터리에 구성된 정적 경로도 구성합니다. ifconfig 명령은 그렇지 않습니다.

관련 정보