13

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

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

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

ОБНОВИТЬ

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

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-адрес?

3 ответа3

8

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

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

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

Вот шаги:

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

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

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

su -

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

modprobe -l | grep /net/dummy.ko

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

3 Загрузить заглушку драйвера

modprobe dummy

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

4 Проверьте dummy0, подняв его

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

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

MODULES_LOADED_ON_BOOT = "..."

Ex. MODULES_LOADED_ON_BOOT = "пустышка vmcp".

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 Добавьте поддержку фиктивного сетевого драйвера

Перейдите к 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
Настройте статические IP-адреса: https://www.linode.com/wiki/index.php/Configure_Static_IPs
openSUSE 12.3 и установка новых версий ядра Linux с сайта kernel.org: http://forums.opensuse.org/blogs/jdmcdaniel3/opensuse-install-new-linux-kernel-versions-134/
OpenSUSE 11.2 - Как скомпилировать ядро для новичков: http://linuxtweaking.blogspot.dk/2010/04/opensuse-112-how-to-compile-kernel-for.html

1

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

Создать файл 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .