Создание точки доступа WiFi на одном интерфейсе в Linux

Я пытаюсь создать точку доступа WiFi или точку доступа на ноутбуке с Linux. Я использую Opensuse Kde 12.3.

я обнаружил программу под названием hostapd который позволяет создавать точки доступа, но требует двух интерфейсов. Один подключен к интернету и другой, на котором вы хотите создать точку доступа (обучение) . Проблема в том, что у меня нет Ethernet-соединения. The wlan интерфейс используется для подключения к интернету.

есть ли способ создать горячую точку на том же интерфейсе, который подключен к Интернету (как программное обеспечение connectify делает на Windows)? Я думал о создании виртуального интерфейса (как airmon-ng создает для мониторинга WiFi) и использовать его в качестве второго интерфейса. Такое возможно?

обновление

вот что я смог сделать до сих пор:

1) Создайте 2 интерфейса (один как станция и другой как точка доступа)

  iw phy phy0 interface add mySta type station
  iw phy phy0 interface add myAcc type __ap

2) Дайте им отдельный Mac ID

ifconfig myAcc hw ether A4:17:FE:6E:00:53
ifconfig myAcc 192.168.27.1 up

3) запустите hostapd на интерфейсе myAcc

4) запустите dnsmasq для предоставления IP-адреса подключаемым устройствам

все это работает. Устройства могут подключаться к этой сети и получать Ip-адрес.
Следующий шаг-обеспечить маскировку ip

iptables --table nat --append POSTROUTING --out-interface mySta -j MASQUERADE
iptables --append FORWARD --in-interface myAcc -j ACCEPT

но интерфейс mySta теперь не удается подключиться к интернету. Это в состоянии получить Essid, но это не удается получить ip-адрес.

команда dhclient mySta не показывает никакого сообщения и через некоторое время выдает ошибку :

ls: cannot access /var/run/netconfig//mySta/: No such file or directory

может кто-нибудь выяснить, как получить IP-адрес ?

19
задан adityap174
14.03.2023 9:35 Количество просмотров материала 3234
Распечатать страницу

3 ответа

для тех, кто сталкивается с этой проблемой, проблема была с mac-адресом. Я запустил интерфейс точки доступа, дал ей mac-адрес. Затем после запуска hostapd, добавил интерфейс станции, дал ему другой mac-адрес и подключил его к сети и дал IP-адрес станции в качестве шлюза по умолчанию клиентов через dnsmasq.

теперь все работает правильно.

Как указал Diblo Dk, вы можете использовать виртуальные и фиктивные интерфейсы, но hostapd не работал с ними. Я не знаю, почему.

вот шаги:

  1. отключить службу network manager, так как она мешает виртуальным интерфейсам
  2. выключите wlan0, используя ifconfig wlan0 вниз
  3. создать интерфейс точки доступа с помощью команды iw (тип __ap), назначить ему другой mac и ip-адрес
  4. включите hostapd на этом интерфейсе доступа
  5. используйте dnsmasq для назначения подключающихся клиентов при этом интерфейс, IP-адреса и дать шлюз по умолчанию в качестве ip интерфейса станции, которая будет создана
  6. включите dnsmasq в интерфейсе доступа. Теперь клиент сможет подключаться к точке доступа и получать ip-адреса.
  7. создать новый интерфейс (тип станции) назначить ему отдельный mac-адрес и подключить его к сети, назначив essid и используя dhclient для получения ip-адреса.
  8. при необходимости выполнять IP маскировку через iptables команда
8
отвечен adityap174 2023-03-15 17:23

настройка фиктивной сети

1 Откройте консоль

su -

2 Смотрите, если у вас есть фиктивный драйвер

modprobe -l | grep /net/dummy.ko

(!) если у вас нет фиктивного драйвера, перейдите к "создать модуль ядра".

3 загрузить фиктивный драйвер

modprobe dummy

(!) не добавляйте его в автозагрузку при сбое.

4 Тест dummy0 по putting it up

ifconfig dummy0 10.246.75.1 netmask 255.255.255.0 broadcast 10.246.75.255 up

ifconfig

это даст вам аналогичный результат.

dummy0  Link encap:Ethernet  HWaddr 00:2D:32:3E:39:3B
        inet addr:10.246.75.1  Bcast:10.246.75.255  Mask:255.255.255.0
        ...

5 добавить фиктивный драйвер при запуске

изменить системный файл ядра.

nano /etc/sysconfig/kernel

и добавить "пустышка " to MODULES_LOADED_ON_BOOT.

MODULES_LOADED_ON_BOOT = "..."

Ex. MODULES_LOADED_ON_BOOT = "vmcp dummy".

6 Настройка параметров сети для dummy0

создать ifcfg-dummy0 папка.

nano /etc/sysconfig/network/ifcfg-dummy0

добавить в файл ifcfg-dummy0 файл:

# Configuration for dummy0
BOOTPROTO=static

# This line ensures that the interface will be brought up during boot.
STARTMODE=onboot

# dummy0 - This is the main IP address that will be used for most outbound connections.
# The address, netmask and gateway are all necessary. The metric is not necessary but
# ensures you always talk to the same gateway if you have multiple public IPs from
# different subnets.
IPADDR=10.246.75.1
NETMASK=255.255.255.0
BROADCAST=10.246.75.255
GATEWAY=10.246.75.1





создать модуль ядра

1 первая установка необходимых вещей

Открыть YaST.

перейти к Software -> Software Management.

клещ:

Development 

[X] Base Development
[X] Linux Kernel Development
[X] C/C++ Development

2 вернитесь в консоль и перейдите к исходному коду ядра

cd /usr/src/linux

3 Импортировать текущую конфигурацию ядра

zcat /proc/config.gz > .config

4 открыть ядро menuconfig

make menuconfig

5 Добавить фиктивную поддержку net driver

перейти к Device Drivers ->Network device support

* Network core driver support
    M Dummy net driver support

(!) если у вас есть звездочка рядом с "поддержка драйверов ядра сети", вы можете пропустить Шаг 7 и 9.

6 скомпилировать ядро

make -j(n+1)

где (n+1) = количество ядер процессора плюс одно, используемое для ускорения компиляции. Для четырех ядер используйте make-j5.

7 установить новое ядро

make install

8 установка модулей

make modules_install

9 загрузить новое ядро

reboot





Определение VIPA (часть о модуле загрузки и ifcfg-dummy0):http://wiki.linuxvm.org/wiki/Defining_a_VIPA

Настроить Статический Айпи: https://www.linode.com/wiki/index.php/Configure_Static_IPs

в openSUSE 12.3 и установке нового ядра Linux версий от kernel.org: http://forums.opensuse.org/blogs/jdmcdaniel3/opensuse-installing-new-linux-kernel-versions-134/

OpenSUSE 11.2-как скомпилировать ядро для новичков: http://linuxtweaking.blogspot.dk/2010/04/opensuse-112-how-to-compile-kernel-for.html

2
отвечен Diblo Dk 2023-03-15 19:40

создать виртуальный интерфейс

создать файл ifcfg-wlan0: 0

nano /etc/sysconfig/network/ifcfg-wlan0:0

добавить в файл ifcfg-wlan0: 0:

DEVICE=wlan0:0

# Configuration for wlan0:0
ONBOOT=yes

# This line ensures that the interface will be brought up during boot.
BOOTPROTO=static

# wlan0:0 - This is the main IP address that will be used for most outbound connections.
# The address, netmask and gateway are all necessary. The metric is not necessary but
# ensures you always talk to the same gateway if you have multiple public IPs from
# different subnets.
IPADDR=10.246.75.1
NETMASK=255.255.255.0
BROADCAST=10.246.75.255
GATEWAY=10.246.75.1

команды для активации интерфейса

ifup wlan0:0

Примечание: выключение основного интерфейса также выключает все его псевдонимы тоже. Псевдонимы могут отключаться независимо от других интерфейсов.

проверьте, если интерфейс работает

ifconfig

это даст вам аналогичный результат.

wlan0:0  Link encap:Ethernet  HWaddr 00:2D:32:3E:39:3B
         inet addr:10.246.75.1  Bcast:10.246.75.255  Mask:255.255.255.0
         ...

http://forums.opensuse.org/english/get-technical-help-here/network-internet/461132-os-11-4-network-manager-default-connection-can-handle-virtual-interfaces.html#post2350426

1
отвечен Diblo Dk 2023-03-15 21:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

dhcp
hostapd
hotspot
linux
wireless-access-point
Вверх