Подключение к Wi-Fi через bash-скрипт в Debian

Вопрос или проблема

Эта команда кажется устаревшей, так как поддерживает только WEP:

iwconfig wlan0 essid WIFI_NETWORK key s:WIFI_PASSWORD 
dhclient wlan0

Я нашел альтернативный способ, который поддерживает WPA2, но он связал с изменением файла .conf.
Я действительно хочу подключаться к WiFi сетям, просто запуская скрипт. 🙁

Я написал быстрый shell-скрипт, который выполняет необходимую конфигурацию для подключения к WiFi сети с WPA2 на Debian.

https://gist.github.com/rjsteinert/4999792f4a7aedd532b2

#! /bin/sh
## Простая команда `wifi` для Debian, которая подключит вас к WPA2 WiFi сети
## использование:
## sudo ./wpa2-wifi-connect.sh <ssid> <pass>

ifdown wlan0

# создаем файл interfaces, который будет указывать на файл с нашей конфигурацией
rm /etc/network/interfaces
touch /etc/network/interfaces
echo 'auto lo' >> /etc/network/interfaces
echo 'iface lo inet loopback' >> /etc/network/interfaces
echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
echo 'allow-hotplug wlan0' >> /etc/network/interfaces
echo 'iface wlan0 inet manual' >> /etc/network/interfaces
echo 'wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf' >> /etc/network/interfaces
echo 'iface default inet dhcp' >> /etc/network/interfaces

# создаем файл supplicant, который содержит нашу конфигурацию
rm /etc/wpa_supplicant/wpa_supplicant.conf
touch /etc/wpa_supplicant/wpa_supplicant.conf
echo 'ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev' >> /etc/wpa_supplicant/wpa_supplicant.conf
echo 'update_config=1' >> /etc/wpa_supplicant/wpa_supplicant.conf
wpa_passphrase $1 $2 >> /etc/wpa_supplicant/wpa_supplicant.conf

ifup wlan0

Ответ или решение

Чтобы подключиться к Wi-Fi сети с использованием Bash скрипта в Debian, можно воспользоваться утилитой wpa_supplicant, которая поддерживает WPA и WPA2. Вот пример скрипта, который автоматически подключает к Wi-Fi сети с заданным SSID и паролем.

#!/bin/bash
# Скрипт для подключения к Wi-Fi сети с WPA2 в Debian
# Используйте: sudo ./wifi_connect.sh <SSID> <PASSWORD>

if [ "$#" -ne 2 ]; then
    echo "Использование: sudo $0 <SSID> <PASSWORD>"
    exit 1
fi

SSID=$1
PASSWORD=$2

# Отключаем интерфейс wlan0
sudo ifdown wlan0

# Настраиваем файл конфигурации wpa_supplicant
WPA_CONF="/etc/wpa_supplicant/wpa_supplicant.conf"

# Создаем новый файл конфигурации wpa_supplicant
echo "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev" | sudo tee $WPA_CONF > /dev/null
echo "update_config=1" | sudo tee -a $WPA_CONF > /dev/null
echo "network={" | sudo tee -a $WPA_CONF > /dev/null
echo "    ssid=\"$SSID\"" | sudo tee -a $WPA_CONF > /dev/null
echo "    psk=\"$PASSWORD\"" | sudo tee -a $WPA_CONF > /dev/null
echo "}" | sudo tee -a $WPA_CONF > /dev/null

# Запускаем wpa_supplicant
sudo wpa_supplicant -B -i wlan0 -c $WPA_CONF

# Получаем IP адрес через DHCP
sudo dhclient wlan0

echo "Подключение завершено. Вы подключены к сети $SSID."

Пояснение:

  1. Проверка аргументов: Скрипт принимает SSID и пароль как аргументы. Если они не указаны, он выводит сообщение о правильном использовании и завершает выполнение.

  2. Отключение от текущей сети: Используется команда ifdown для отключения интерфейса wlan0.

  3. Конфигурация wpa_supplicant:

    • Скрипт создает новый файл конфигурации wpa_supplicant в /etc/wpa_supplicant/wpa_supplicant.conf.
    • В файл добавляются необходимые параметры, включая SSID и пароль, чтобы он мог подключиться к нужной сети.
  4. Запуск wpa_supplicant: Параметр -B запускает wpa_supplicant в фоновом режиме, а -i wlan0 определяет интерфейс, который следует использовать.

  5. Получение IP-адреса: dhclient wlan0 запрашивает IP-адрес у DHCP-сервера.

Запуск:

Сохраните этот скрипт, например, как wifi_connect.sh, измените его права на выполнение с помощью команды chmod +x wifi_connect.sh, и запустите его с правами суперпользователя, передав SSID и пароль:

sudo ./wifi_connect.sh <SSID> <PASSWORD>

Замечание:

Не забудьте установить пакет wpasupplicant, если он еще не установлен, с помощью команды:

sudo apt-get install wpasupplicant

Данный скрипт обеспечит простое подключение к Wi-Fi сети с использованием WPA2, не требуя ручных изменений конфигурационных файлов, что делает его удобным в использовании.

Оцените материал
Добавить комментарий

Капча загружается...