Как создать Wi-Fi-точку доступа к беспроводному интернет-соединению (один адаптер)?

85

Я знаю, как создать точку доступа при подключении к проводной сети, но когда я пользуюсь Интернетом из WiFi-соединения, это отключает беспроводное соединение в тот момент, когда я активирую горячую точку.

В Windows я могу использовать Connectify Hotspot , что позволяет мне использовать интернет-соединение с тем же беспроводным адаптером, что и я создание точки доступа. Как вы можете прочитать на странице обзора технологий :

Access Point mode allows you to create a hotspot using the same Wi-Fi card that you are using to access the Internet.

Как это сделать на Ubuntu?

    
задан Ruppesh Nalwaya 11.07.2013 в 17:39
источник

8 ответов

51

Простые шаги: Создайте точку доступа wifi в ubuntu

  1. Отключить Wi-Fi (снимите флажок Включить Wi-Fi)
  2. Перейти к сетевому соединению (Edit Connections ...)
  3. Нажмите «Добавить»
  4. Выберите «Wi-Fi» и нажмите «Создать»
  5. Введите имя подключения, например, "wifi-hotspot"
  6. Введите SSID по своему усмотрению
  7. Выберите MAC-адрес устройства из раскрывающегося списка (wlan0)
  8. Wifi Security выберите «WPA & WPA2 Personal» и установите пароль .
  9. Перейдите на вкладку «Параметры IPv4», в раскрывающемся списке «Метод» выберите «Общий доступ» на другие компьютеры.
  10. Затем сохраните и закройте.
  11. Откройте терминал (Ctrl + Alt + T) и введите следующую команду с вашим именем соединения, используемым на шаге 5.

    sudo gedit /etc/NetworkManager/system-connections/wifi-hotspot
    
  12. Найдите mode=infrastructure и измените его на mode=ap

  13. Теперь проверьте сетевой раздел, где wi-fi будет автоматически подключаться к созданной точке доступа. Если вы не можете найти его, перейдите в Подключиться к скрытой сети ... Найдите соединение и подключитесь к нему.

Источник: Ссылка

    
ответ дан Purushoth 14.04.2015 в 16:31
39

После того, как я увидел эту ссылку vasishath , мне удалось настроить беспроводную точку доступа для совместного использования интернет-соединения с одного и того же устройства с одним беспроводным интерфейсом. Это беспроводное устройство должно использовать драйвер Atheros , который уже создан с поддержкой nl80211 . Затем я покажу вам, как.

Обнаружение, будет ли ваше беспроводное устройство работать с этим методом

Выполните следующую команду в терминал :

lsmod | grep ath

Если вывод является нулевым, или если строка cfg80211 отсутствует на выходе, нет смысла продолжать, и вы должны обратить внимание на вторую и третью точки из этот ответ .

Необходимые инструменты

Проверьте, установлены ли все перечисленные ниже пакеты: iw , hostapd , iptables , udhcpd , udhcpc , macchanger .

Вы можете установить их с помощью

sudo apt-get install iw hostapd iptables udhcpd udhcpc macchanger

Редактирование некоторых файлов

Выполните следующую команду в терминале для редактирования соответствующих файлов:

sudo -H gedit /etc/hostapd.conf /etc/udhcpd.conf /etc/default/udhcpd /etc/wpa_supplicant.conf
  • В файле hostapd.conf добавьте следующий код:

    interface=new1
    driver=nl80211
    ssid=my_wifi_hotspot      #Change the ssid name as you wish
    channel=11                #I sugest you to use the same channel as your wireless network
    hw_mode=g
    wme_enabled=1
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=3
    wpa_passphrase=1234567890 #Change the passphrase as you wish
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    
  • В файле udhcpd.conf прокомментируйте все текущие строки (добавив символ # перед строкой) и добавьте следующие новые строки:

    start 192.168.0.102         #These IPs must to be in the same subset as your current default route
    end 192.168.0.117 
    interface new1 
    
    opt dns 192.168.0.1         #Your current default route (Gateway)
    option subnet 255.255.255.0
    opt router 192.168.0.101    #This IP must to be in the same subset as your current default route
    option  domain  localhost
    
  • В / etc / default / udhcp прокомментируйте строку, в которой указано DHCPD_ENABLED="no" .

  • В wpa_supplicant.conf вы должны указать настройки вашей текущей беспроводной сети. См. man wpa_supplicant для некоторых быстрых примеров. И у вас, вероятно, есть больше примеров в каталоге /usr/share/doc/wpa_supplicant/ . Я использовал что-то вроде:

    ctrl_interface=/var/run/wpa_supplicant
    network={
      ssid="my_wifi_network"
      key_mgmt=WPA-PSK
      proto=WPA
      pairwise=CCMP
      group=CCMP
      psk="mypassphrase"
    }
    
  • Сохраните все файлы и закройте их.

Note: All of these edits doesn't affect with nothing your current network configuration.

Сделать сценарий оболочки

  • В терминальном запуске mkdir -p bin - эта команда сделает каталог bin в вашей папке home , если у вас ее еще нет.
  • После запуска gedit ~/bin/hotspotsetup.sh - это создаст новый файл change_sources.sh в gedit.
  • Скопируйте и вставьте следующий скрипт в новый созданный файл:
#!/bin/bash

service network-manager stop
sleep 1

pkill -15 nm-applet
sleep 1

ifconfig wlan0 down             #wlan0 - the name of your wireless adapter
sleep 1

iw phy phy0 interface add new0 type station
iw phy phy0 interface add new1 type __ap
sleep 2

ifconfig new0 down
macchanger --mac 00:11:22:33:44:55 new0
ifconfig new1 down
macchanger --mac 00:11:22:33:44:66 new1
ifconfig new0 up
ifconfig new1 up

ifconfig new1 192.168.0.101 up  #192.168.0.101 - the same IP defined for router in 'udhcpd.conf' file 
hostapd /etc/hostapd.conf &
sleep 2

service udhcpd start

wpa_supplicant -inew0 -c/etc/wpa_supplicant.conf &
sleep 10

udhcpc -i new0

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface new0 -j MASQUERADE
iptables --append FORWARD --in-interface new1 -j ACCEPT
  • Сохраните файл и закройте его.
  • Вернитесь в терминал и запустите: chmod +x ~/bin/hotspotsetup.sh - чтобы предоставить доступ для выполнения сценария.

Запустите беспроводную точку доступа, подключенную к беспроводной сети от одного и того же беспроводного адаптера

Запустите указанный выше сценарий в терминале с правами root:

sudo ~/bin/hotspotsetup.sh

Доказательство

Note: To start again your network-manager service as it was before to run the hotspotsetup.sh script, restart your computer (sudo reboot).

Источник: Connectify для Linux с одним беспроводным интерфейсом .

    
ответ дан Radu Rădeanu 26.07.2013 в 11:11
4

Это было добавлено как еще один ответ, потому что другой ответ вызвал столько споров.

В первую очередь вам нужно знать имя нашего беспроводного адаптера. Используйте команду ниже:

iwconfig

Скорее всего, это будет wlan0 или wlan1.

Есть случаи, когда мы используем старый адаптер WiFi, и мы хотим знать, какой драйвер он использует. Мы можем использовать приведенные ниже команды в соответствии с типом USB или PCI.

lsusb
lspci

Используйте приведенную ниже команду, чтобы узнать, какой драйвер вы используете в данный момент:

lsmod

Необходимо установить программы. Просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующие команды:

sudo apt-get install hostapd

Откройте файл конфигурации основного сетевого адаптера с помощью этой команды:

sudo gedit /etc/hostapd/hostapd.conf

И отредактируйте его так:

interface=wlan0
driver=nl80211
country_code=US
ssid=mySSID
hw_mode=g
channel=1
wpa=2
wpa_passphrase=MyWiFiPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

Первой строкой должно быть ваше имя сетевого адаптера. Вторая строка не должна изменяться в большинстве случаев, если вам не повезло, и вам нужен сторонний драйвер. Третья строка не требует объяснений. 4-я строка должна быть вашим именем точки доступа WiFi (SSID). Пятая строка определяет вашу сеть как режим a / b / g / n. Следующая строка - ваш сетевой канал. Остальные строки устанавливают безопасность и шифрование. В большинстве случаев вам требуется только изменить пароль.

Откройте второй файл конфигурации с помощью этой команды:

sudo gedit /etc/default/hostapd

И измените его так:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
RUN_DAEMON="yes"
DAEMON_OPTS="-dd"

Первая строка указывает на файл конфигурации основного сетевого адаптера. Вторая строка сообщает hostapd работать в режиме DAEMON в фоновом режиме при загрузке. Последняя строка сообщает hostapd регистрировать каждое сообщение. Важным трюком здесь является то, что если вы хотите использовать два разных адаптера беспроводной сети для настройки двухполосной точки доступа, вы должны создать отдельный файл конфигурации (1-й файл) для каждого ard и изменить его следующим образом:

DAEMON_CONF="/etc/hostapd/hostapd.conf /etc/hostapd/hostapd2.conf"

Конфигурации завершены.

Запуск DAEMON

Теперь вы должны убедиться, что hostapd DAEMON запускается при загрузке (первая команда ниже), вы также должны запустить его сейчас, чтобы избежать обязательной перезагрузки.

sudo update-rc.d hostapd defaults
sudo /etc/init.d/hostapd start

И все кончено. Теперь мы можем подключиться к нашей недавно построенной точке доступа.

Источники: Hostapd: путь Linux для создания точки виртуального Wi-Fi и amp; страница документации Hostapd Linux

    
ответ дан Mitch 27.07.2013 в 22:20
4

Как вы можете видеть в комментариях к этому ответу, это способ сделать это. Он документирован для FreeBSD (который не является Ubuntu / Linux) здесь: Ссылка (ссылка из комментария). Кажется, что это не работает точно так же в Linux, но должно быть похоже. К сожалению, я не смог найти более подробную информацию по этой теме.

Вероятно, самым простым и наиболее распространенным способом является использование двух физических сетевых интерфейсов. Таким образом, вы можете купить еще один wifi-палку или просто использовать другую технологию для подключения дальше и сделать только один из них через Wi-Fi. Возможные варианты:

  • Bluetooth + Wifi
  • LAN / Ethernet + Wifi
  • 3G / LTE + Wifi
  • Wifi (внешний) + Wifi (встроенный или второй внешний)

Как только я заметил, что Ubuntu Linux способен управлять двумя устройствами Wi-Fi одновременно, не будучи сложным. Я не тестировал это путем совместного использования интернет-соединения и т. Д., Но это должно быть возможно. Способ, каким он будет сложным, вероятно, зависит от типа используемых вами соединений. На Linux вам, вероятно, не нужно, а также специальное программное обеспечение. Должна быть доступна возможность совместного использования соединений без использования каких-либо специальных инструментов. К сожалению, я не могу попробовать в это время.

Я рекомендую вам попробовать Wi-Fi в Wi-Fi, если в любом случае у вас есть еще один wifi-джойстик, а также LAN или Bluetooth (который встроен в большинство ноутбуков). Совместное использование 3G / LTE является немного плохой из-за провайдеров dataplans и т. Д.

    
ответ дан verpfeilt 11.07.2013 в 18:10
2

Лучшим способом, который я нашел для создания КОНСЕРВНОГО ОПЫТА, является использование AP-HOTSPOT!
(WPA2 .. не wep как linux делает по умолчанию в ubuntu)

sudo add-apt-repository ppa:nilarimogard/webupd8

sudo apt-get update

sudo apt-get install ap-hotspot

Для запуска и параметров

Начало: sudo ap-hotspot start

Стоп: sudo ap-hotspot stop

Настройка: sudo ap-hotspot Configure

Хотите графический интерфейс пользователя ?

Чтобы установить его, откройте терминал, затем перейдите к:

cd /home/USERNAME/LOCATION

Затем запустите команды установки:

qmake

make

Создает программу ... Перетащите ее на рабочий стол и сделайте :) cheers

Что касается двух адаптеров ... Windows и бесплатный bsd могут это сделать ... На данный момент я все еще пытаюсь понять это, поскольку я только подошел к этому сценарию для себя по состоянию на вчерашний день! Я отчитаюсь ... Linux тоже может это сделать .. Это не аппаратное ограничение для адаптеров, которые могут делать это с другими операционными системами ...

    
ответ дан user251335 23.02.2014 в 08:06
1

В настоящее время он доступен только для карт Atheros и очень немногих карт Broadcom. Чтобы узнать, какой из них вы используете, выполните следующую команду в терминале и вставьте здесь: -

lspci | Wireless

Или вы можете просто попробовать этот метод. Вот ссылка на учебное пособие о том, как это сделать: connectify-for-linux-with-single-wireless-interface

    
ответ дан vasishath 27.07.2013 в 13:18
1

Как и ответ Пурушота , на этот ответ также требуются 2 адаптера WiFi (например: один внутренний и 1 внешний USB-Wi-Fi адаптер). Однако я не мог получить его ответ на работу для меня, поэтому вот что я сделал вместо этого.

Протестировано в Xubuntu 14.04.

Как настроить Ubuntu / Xubuntu PC как точку доступа WiFi (например, для использования в аэропортах или на самолетах, чтобы использовать одно платное соединение с ПК с телефоном и другими устройствами):

  1. Вставьте USB-ключ USB. Не все ключи могут действовать как «ap» (точка доступа), но внутренняя карта может быть уверенной, поэтому мы (пока, по крайней мере, пока вы не найдете адаптер Wi-Fi USB, который может действовать как точка доступа), используйте внешний USB-порт для подключения к платной услуге (например, в полете WiFi), и мы будем использовать внутренний адаптер Wi-Fi, чтобы сделать точку доступа Wi-Fi.
    • ВАЖНО: НЕ ПЛАТИТЕ И ПОДКЛЮЧАЙТЕСЬ К ОГРАНИЧЕННОМУ ОБСЛУЖИВАНИЮ С НЕПОСРЕДСТВЕННЫМ (внешним) АДАПТЕРОМ WIFI ИЛИ ТОЛЬКО ВЫ ДОЛЖНЫ ПЛАТИТЬ СНОВА, ЧТОБЫ ПЕРЕКЛЮЧАТЬ ЭТО, КАК ВАШЕ ПЛАТНОЕ СОЕДИНЕНИЕ НЕКОТОРЫ, СВЯЗАННЫЕ С ВАШИМ АДАПТЕРОМ WIFI-ВЕРОЯТНО ПОЛУЧИТЕ ЕЕ ПОСТОЯННЫЙ МАК-АДРЕС ИЛИ ЧТО-ТО.
  2. Щелкните левой кнопкой мыши значок Wi-Fi на панели и выберите «Создать новую сеть Wi-Fi ...» → выберите внутренний адаптер Wi-Fi (wlan0), введите имя сети (SSID) (например: «wifi- hotspot "), выберите« WPA & amp; WPA2 Personal "для« безопасности Wi-Fi »и введите пароль, затем нажмите« Создать ».
    • NB: УБЕДИТЕСЬ, ЧТО ВАМ НЕКОТОРЫ НЕ УДАЛИТЬ, ЧТОБЫ ВЫБРАТЬ ВНУТРЕННИЙ АДАПТЕР WIFI ДЛЯ ЭТОГО ШАГА, КОГДА ВЫ ТАКЖЕ ИМЕЕТ ВНЕШНИЙ АДАПТЕР USB WIFI. ЕСЛИ ЭТО ПРОИЗОЙДЕТ, ПРОСТО НЕПРЕРЫВАТЬ ВНЕШНИЙ АДАПТЕР WIFI, ЭТА ШАГ, ЧТОБЫ СДЕЛАТЬ WIFI HOTSPOT, затем подключите его обратно, когда это будет сделано / когда будет сказано ниже.
  3. Отредактируйте конфигурационный файл для новой точки доступа Wi-Fi, которую вы только что создали:
    • cd /etc/NetworkManager/system-connections
    • ls
    • Найдите свой файл hotspot, который вы только что создали, с помощью шага GUI выше; ex: «wifi-hotspot» и отредактируйте его:
    • sudo nano wifi-hotspot
    • Стреляйте вниз и меняйте «mode = adhoc» или что-либо, что он говорит «mode = ap». Сохранить и выйти.
  4. Теперь, когда внешний USB-адаптер WiFi по-прежнему не подключен к сети, активируйте горячую точку Wi-Fi, которую вы только что создали, щелкнув левой кнопкой мыши значок WiFi на панели снова и перейдя в «Подключение к скрытой сети Wi-Fi ...» → выберите свой внутренний Wi-Fi адаптер снова для «Wi-Fi-адаптера» и выберите имя точки доступа (например: «wifi-hotspot») для «Connection». Теперь появятся поля «Имя сети», «Безопасность Wi-Fi» и «Пароль» автозаполнение и серый цвет. Нажмите «Подключиться». Точка доступа WiFi будет активирована на вашей внутренней карте. Вы можете подключить к нему свои устройства, такие как ваш телефон.
  5. Наконец, если активна ваша активная точка доступа WiFi, подключите к ней дополнительный адаптер USB / WiFi и используйте его для подключения к платной сети. Платите за подписку или что угодно, и ваш интернет через этот адаптер теперь будет автоматически передаваться на устройства, подключенные к вам через ваш внутренний адаптер «Точка доступа», который вы только что настроили.
  6. Готово!

Ссылки: Вот где я нашел путь к папке /etc/NetworkManager/system-connections & amp; альтернативный подход (который не работал для меня): Ссылка

    
ответ дан Gabriel Staples 16.12.2017 в 03:26
0

Позвольте представить вам отличный инструмент, который упрощает все: create_ap (через наклонный )
Это официальный репозиторий: Ссылка
Этот инструмент является частью репозиториев Arch Linux и должен быть в репозиториях Ubuntu тоже!

Он очень прост в использовании и очень эффективен.
Чтобы установить его в Ubuntu , вы должны сначала установить зависимости:

sudo apt install bash util-linux procps hostapd iproute2 iw wireless-tools haveged iptables dnsmasq git

Если вы не использовали «мини-установочный образ», у вас уже есть 90% из них ...
Как только это будет сделано, клонируйте репозиторий из наклонного:

git clone https://github.com/oblique/create_ap.git

Найдите ваш терминал в загруженном репозитории:

cd create_ap

Установите инструмент с помощью

sudo make install

(не требуется компиляция с make )
Легко, правда? Ну, остальное еще проще ... ... Если ваше устройство может использоваться как клиент и PA одновременно (например, чип atheros wifi), вам просто нужно подключиться к домашнему маршрутизатору с сетевым менеджером, так как вы обычно делаете, и вы выполняете такую командную строку:

sudo create_ap <connected interface> <repeater interface> <essid repeated network> <WPA Key>

Пример

sudo create_ap wlp2s0 wlp2s0 Bathroom_WiFi mysecuresecretkey

И ... Все! Невероятноитакпросто!ТеперьвампростонужноподключитьсякповторнойсетисвашимустройствомAndroid.Выувидитенасвоемтерминаленоутбукрукопожатие,согласованноемеждувашимноутбукомиклиентом: Ивыможетенаслаждатьсяприятнойсессиейвваннойкомнатесинтернетом...Всесделаноспомощьюодногоинтерфейсаиспомощьюоднойпростойкоманды.Инструментимеетмножествоопций,дляполучениядополнительнойинформациипосетитерепозиторийgithubскосой(ссылкаприведенаранее),иесливыможетеговоритьпо-испански,выможетепроверитьэтутемуфорума: create_ap: La solución perfecta para transformar tu ordenador en un repetidor universal todo terreno

    
ответ дан kcdtv 03.08.2018 в 15:26