LINUX.ORG.RU

Не могу загасить wlan0

 , ,


0

1

Подключен к сети через wifi. Все хорошо, пока не решаю отключить wifi и переключиться на eth0.

Пробовал разными способами остановить net.wlan0, начав вручную /etc/.init.d/net.wlan0 stop. Оьрабатывает, пишет, что wlan0 stopped, но вывод ifconfig показывает, что интерфейс по-прежнему UP.

# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.55  netmask 255.255.255.0  broadcast 192.168.1.255
        ether d8:5e:d3:ac:a5:6a  txqueuelen 1000  (Ethernet)
        RX packets 3930  bytes 3942667 (3.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3104  bytes 878508 (857.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6272  bytes 680520 (664.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6272  bytes 680520 (664.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.1.77  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 90:de:80:3e:9b:25  txqueuelen 1000  (Ethernet)
        RX packets 36830  bytes 36157284 (34.4 MiB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 25878  bytes 6791350 (6.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0 поднялся, но траффик продолжает запихиваться в wlan0, который уже погашен - ip route пишет, что linkdown:

# ip route
default via 192.168.1.1 dev wlan0 linkdown 
default via 192.168.1.1 dev eth0 metric 2 
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.77 linkdown 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.55 

Вот последний вариант скрипта выключения wlan0 и поднятия eth0:

/etc/init.d/net.wlan0 zap 2>/dev/null
/usr/bin/killall -q -9 wpa_supplicant 2>/dev/null

/sbin/ip addr del 192.168.1.77/24 dev wlan0 2>/dev/null
/sbin/ip addr flush dev wlan0 2>/dev/null

/sbin/ip route del default dev wlan0 2>/dev/null
/sbin/ip route del 192.168.1.0/24 dev wlan0 2>/dev/null

/etc/init.d/net.eth0 zap 2>/dev/null
/etc/init.d/net.eth0 restart

Что ему надо?

★★★★★
Ответ на: комментарий от anonymous

такой вариант рассматривал но не пробовал, хотел бы без выключения, чтобы разобраться, почему wlan0 висит в ifconfig

Тем более, что на одном ПК wlan выключается нормально, без фокусов. Системы обе gentoo, ядра одинаковые, поведение разное

Chord ★★★★★
() автор топика
Последнее исправление: Chord (всего исправлений: 1)

Не, ну уж если до скрипта дошло, пишите два маршрута /1 вместо default в eth0 :)

/etc/init.d/net.wlan0 zap

что вы пытались этим сделать?

Да, и у вас не должно быть флага LOWER_UP у eth0?

mky ★★★★★
()
Ответ на: комментарий от mky

что вы пытались этим сделать?

остановить сервис wlan. Если вопрос по zap то это как я понял из вики, что-то типа параметра force на случай если сервис не отвечает: https://wiki.gentoo.org/wiki/OpenRC

LOWER_UP

Никогда такого не видел, UP знаю, LOWER_UP - не знаю

Ну так-то я сейчас скрипт на остановку через rfkill переделал

Chord ★★★★★
() автор топика
Ответ на: комментарий от Chord

zap — это сказать openrc, что сервис уже выключен и его нужно считать выключенным, и ничего не делать (не делать действия, которые по stop). Если в скрипте zap, то должен быть «ip link set down dev wlan0».

LOWER_UP - не знаю

Да, спутался, думал, что это вывод ip link. Там этот флаг бывает.

на остановку через rfkill переделал

Успешно?

mky ★★★★★
()
Ответ на: комментарий от mky

zap — это сказать openrc, что сервис уже выключен

ну или так, дать знать системе, что выключен, чтобы не ориентировались на отсутствующий по факту интерфейс. Попытка дезавуировать регистрацию wlan0. Но почему-то отключенный wlan0 ядро видит как запущенный и использует его вместо действительно работающего eth0.

Успешно?

да, но пришлось скрипты запуска подправлять

Chord ★★★★★
() автор топика
Ответ на: комментарий от annulen

по факту выключает, но в выводе того же ifconfig он показывается как UP. Даже вручную выключаю - все равно ifcjnfig говорит, что запущен.

Chord ★★★★★
() автор топика

его не надо гасить, на самом деле нужно просто прописать

dhcpcd -i eth0

да и тем более это нормально когда 2 и более интерфейсов

voided
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария