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コマンドはそうではありません。

関連情報