Вопрос или проблема
Множество связанных постов, похоже, специфичны для оборудования или связаны с проблемами оборудования, которых у меня, судя по всему, нет, поскольку всё работает нормально, если я настраиваю wlan0 после загрузки и после входа в систему.
Я новичок в ubuntu сервере, поэтому надеюсь, что здесь просто проблема с конфигурацией.
Я просто хочу, чтобы беспроводное соединение подключалось после загрузки, чтобы я мог подключаться по ssh к системе и работать удаленно всё время.
Если я настраиваю /etc/network/interfaces с wlan0, либо с статическими настройками, либо с dhcp, то карта, похоже, настраивается с IP-адресом (по данным ifconfig), но ip addr
говорит, что wlan0 DOWN, и команды, чтобы поднять его, не приводят к результату.
Если я закомментирую настройки в /etc/network/interfaces, перезагружу, войду в систему на самом устройстве, ip addr
показывает, что wlan0 UP, затем я запускаю sudo dhclient wlan0
, и тогда всё в порядке.
Ответ здесь: Нет Wi-Fi после перезагрузки системы подразумевал, что могут быть проблемы с таймингом во время загрузки, и это, похоже, подходит, но я не уверен, как это диагностировать.
Вот /etc/network/interfaces
# Этот файл описывает сетевые интерфейсы, доступные в вашей системе
# и как их активировать. Для получения дополнительной информации смотрите interfaces(5).
# Локальный сетевой интерфейс
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.13
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
pre-up /etc/init.d/wpa.sh start
post-down /etc/init.d/wpa.sh stop
Я попробовал предложения chili555. Изменения в /etc/network/interfaces
не повлияли на ситуацию. После загрузки ip addr
показывает, что wlan0 DOWN, и различные команды, указанные здесь, чтобы попробовать поднять его, не работают.
Я не смог захватить весь вывод от sudo ifup -v wlan0
, даже с различными 2>&1 >file
перенаправлениями, части, не захваченные, были от wpa_supplicant. Он не указал никаких ошибок, насколько я мог судить, вот остальная часть вывода от команды sudo ifup
(команда sudo ifdown, похоже, работала нормально с небольшим выводом):
OK
ip addr add 192.168.1.13/255.255.255.0 broadcast 192.168.1.255 dev wlan0 label wlan0
ip link set dev wlan0 up
ip route add default via 192.168.1.1 dev wlan0
run-parts --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/ethtool
run-parts: executing /etc/network/if-up.d/ntpdate
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/upstart
run-parts: executing /etc/network/if-up.d/wpasupplicant
Но ip addr
после этого всё еще DOWN, и я не могу подключиться. Я пробовал sudo ip link set wlan0 up
(с и без dev
), также sudo ifconfig wlan0 up
– ничего не изменилось.
Запуск sudo dhclient ip
просто зависает на некоторое время, а затем истекает. Уже назначен статический IP, не знаю, имеет ли это значение.
Когда я оставляю wlan0 не сконфигурированным в /etc/network/interfaces и затем перезагружаю, вот что ip addr
показывает после загрузки:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p12p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether f0:4d:a2:4c:6a:c4 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:21:6a:c7:12:38 brd ff:ff:ff:ff:ff:ff
inet6 fe80::221:6aff:fec7:1238/64 scope link
valid_lft forever preferred_lft forever
затем выполнение sudo dhclient wlan0
подключает всё, и вот последующий вывод ip addr
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p12p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether f0:4d:a2:4c:6a:c4 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:21:6a:c7:12:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.13/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::221:6aff:fec7:1238/64 scope link
valid_lft forever preferred_lft forever
Проверьте это:
Напишите скрипт, предположим, wifi-on.sh, в /etc/init.d/
sudo -i
nano /etc/init.d/wifi-on.sh
С этим содержимым, или тем, что вы используете для активации wlan0:
!/bin/bash
ifconfig wlan0 up
iwconfig wlan0 essid <ESSID>
iwconfig wlan0 key s:<password_wireless>
dhclient wlan0
Вы даёте разрешения на выполнение и добавляете в автозагрузку системы:
sudo -i
chmod 755 /etc/init.d/wifi-on.sh
update-rc.d wifi-on.sh defaults
Я вовсе не уверен, что делают ваши объявления pre-up и post-down. Я предлагаю изменить файл на:
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.13
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
wpa-essid your_network
wpa-psk your_key
Пожалуйста, убедитесь, что выбранный вами адрес находится вне диапазона адресов, используемых DHCP-сервером в маршрутизаторе, чтобы избежать коллизий. Перезапустите интерфейс, чтобы увидеть, подключается ли он или выдает ошибку:
sudo ifdown wlan0 && sudo ifup -v wlan0
Проверьте:
ifconfig
ping -c3 www.ubuntu.com
chrismo: Эти изменения в /etc/network/interfaces
не повлияли на ситуацию. После загрузки ip addr
показывает, что wlan0 DOWN, и различные команды, указанные здесь, чтобы попробовать поднять его, не работают.
Я не смог захватить весь вывод от sudo ifup -v wlan0
, даже с различными 2>&1 >file
перенаправлениями, части, не захваченные, были от wpa_supplicant. Он не указал никаких ошибок, насколько я мог судить, вот остальная часть вывода от команды sudo ifup
(команда sudo ifdown, похоже, работала нормально с небольшим выводом):
OK
ip addr add 192.168.1.13/255.255.255.0 broadcast 192.168.1.255 dev wlan0 label wlan0
ip link set dev wlan0 up
ip route add default via 192.168.1.1 dev wlan0
run-parts --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/ethtool
run-parts: executing /etc/network/if-up.d/ntpdate
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/upstart
run-parts: executing /etc/network/if-up.d/wpasupplicant
Но ip addr
после этого всё еще DOWN, и я не могу подключиться. Я пробовал sudo ip link set wlan0 up
(с и без dev
), также sudo ifconfig wlan0 up
– ничего не изменилось.
Запуск sudo dhclient ip
просто зависает на некоторое время, а затем истекает. Уже назначен статический IP, не знаю, имеет ли это значение.
Когда я оставляю wlan0 не сконфигурированным в /etc/network/interfaces и затем перезагружаю, вот что ip addr
показывает после загрузки:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p12p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether f0:4d:a2:4c:6a:c4 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:21:6a:c7:12:38 brd ff:ff:ff:ff:ff:ff
inet6 fe80::221:6aff:fec7:1238/64 scope link
valid_lft forever preferred_lft forever
затем выполнение sudo dhclient wlan0
подключает всё, и вот последующий вывод ip addr
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p12p1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether f0:4d:a2:4c:6a:c4 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:21:6a:c7:12:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.13/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::221:6aff:fec7:1238/64 scope link
valid_lft forever preferred_lft forever
Ответ или решение
Проблема с тем, что интерфейс WLAN (wlan0) не работает после перезагрузки системы, несмотря на то что он успешно настраивается вручную, может быть вызвана несколькими факторами. Давайте рассмотрим возможные причины и решения.
1. Анализ конфигурации
Ваша конфигурация файла /etc/network/interfaces
выглядит следующим образом:
auto wlan0
iface wlan0 inet static
address 192.168.1.13
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
pre-up /etc/init.d/wpa.sh start
post-down /etc/init.d/wpa.sh stop
Здесь вы указали настройки для статического IP-адреса. Проверьте, что ваш DHCP-сервер на маршрутизаторе не выдает IP-адреса в диапазоне, который вы указали (192.168.1.13), чтобы избежать конфликтов.
2. Тайминг загрузки
Судя по вашему описанию, вам может быть необходимо синхронизировать время инициализации сетевого интерфейса с моментом завершения загрузки необходимых модулей и служб. Попробуйте использовать скрипт, который будет запускаться после других служб, чтобы убедиться, что все необходимые компоненты доступны.
3. Исправленный скрипт и конфигурация
Вместо использования pre-up
и post-down
для управления состоянием интерфейса, попробуйте прямо указать параметры WPA в конфигурационном файле. Чтобы изменить файл /etc/network/interfaces
, модифицируйте его, как следующее:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "Ваш_SSID"
wpa-psk "Ваш_пароль"
4. Параметры init.d
Если вы хотите использовать скрипт для автоматизации процесса, убедитесь, что он имеет правильные права на выполнение и корректно настроен:
- Создайте скрипт:
sudo nano /etc/init.d/wifi-on.sh
- Вставьте следующий код:
#!/bin/bash
ifconfig wlan0 up
iwconfig wlan0 essid "Ваш_SSID"
iwconfig wlan0 key s:"Ваш_пароль"
dhclient wlan0
- Сделайте его исполняемым:
sudo chmod +x /etc/init.d/wifi-on.sh
- Добавьте его в автозагрузку:
sudo update-rc.d wifi-on.sh defaults
5. Проверка состояния сети
После выполнения переключения на DHCP и изменения конфигурации запустите следующую команду для перезагрузки wlan0:
sudo ifdown wlan0 && sudo ifup wlan0
Проверьте состояние интерфейса после этого:
ip addr show wlan0
Заключение
Если после указанных шагов интерфейс все еще показывает состояние "DOWN" после перезагрузки, вам может потребоваться активировать автоматическое определение настроек через DHCP, либо проверить обновления драйвера для вашей беспроводной карты. Также убедитесь в отсутствии проблем с оборудованием, применяя команды, такие как dmesg
, для анализа ошибок при загрузке. Если проблема сохраняется, следует рассмотреть обращения в сообщество или форумы поддержки Ubuntu для дальнейшей диагностики.