Configure el modo AP de la tarjeta de red inalámbrica como un punto de acceso wifi

1. Determine si la tarjeta de red admite AP

Independientemente de si se trata de una tarjeta de red inalámbrica integrada o una tarjeta de red inalámbrica USB externa, primero debe configurarse como un modo de punto de acceso AP. Debe verificar si es compatible con el modo AP.

Por ejemplo, inserte aquí la tarjeta de red inalámbrica USB de doble banda rtl8811c iwconfigpara ver la información de la tarjeta de red.

nvidia@nvidia-desktop:~$ iwconfig
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Si no hay información correspondiente sobre la tarjeta de red insertada, es posible que deba instalar el controlador.

Después de eso, usamos el comando iw listpara verificar si hay un AP en la lista compatible con "Modos de interfaz compatibles:", si es así, significa que admite la configuración como un punto de acceso AP.

nvidia@nvidia-desktop:~$ iw list
Wiphy phy1
        max # scan SSIDs: 9
        max scan IEs length: 2304 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
                * CCMP-128 (00-0f-ac:4)
                * CMAC (00-0f-ac:6)
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * P2P-client
                 * P2P-GO
                 * P2P-device

2. Configure el modo de punto de acceso inalámbrico

Use hostapd y dhcpd para establecer un punto de acceso inalámbrico en el sistema Ubuntu.

2.1 Instalar hostapd y dhcpd

Instalarsudo apt-get install hostapd

No es necesario iniciar estos dos servicios al arrancar, se recomienda desactivarlos:

sudo update-rc.d -f hostapd remove

sudo apt-get install isc-dhcp-server, modifique los siguientes dos archivos (si los hay), comente el inicio en línea

sudo vim /etc/init/isc-dhcp-server.conf
sudo vim /etc/init/isc-dhcp-server6.conf

2.2 Configurar puntos de acceso

2.2.1 Modificar /etc/hostapd/hostapd.conf

Si no ha cambiado el archivo, simplemente agregue uno directamente. La interfaz, el controlador, el nombre, la contraseña, etc. utilizados para configurar el AP son los siguientes:

# 选择的网口名称,我这里是wlan0。具体可以ifcofnig看下当前设备下偶那些网口
interface=wlan0
# 线驱动,一般有两种:wext/nl80211,wext版本较旧目前一般使用nl80211
driver=nl80211
# AP的名称,类似于我们的路由器名称
ssid=magicsky_uav
# 802.11g,一般三个模式: a,b,g。a->5GHZ,g->2.4GHZ
hw_mode=g
# wifi工作的信道,2.4GHZ(1~14)
channel=10
macaddr_acl=0
auth_algs=3
# 选择加密方式为WPA2,常用加解密方法是有WEP、WPA、WPA2、WPA3
wpa=2
# 密码
wpa_passphrase=12345678
# 加密方法和算法
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

2.2.2 Modificar /etc/dhcp/dhcpd.conf

Agregue el siguiente contenido al final de /etc/dhcp/dhcpd.conf para configurar el conjunto de direcciones IP, la puerta de enlace de enrutamiento, dns, etc.

subnet 192.168.9.0 netmask 255.255.255.0
{
    
    
  range 192.168.9.2 192.168.9.10;
  option routers 192.168.9.1;
  option domain-name-servers 192.168.9.1,114.114.114.114,8.8.8.8;
}

Aquí configuramos la dirección ap de nuestra tarjeta de red inalámbrica como 192.168.9.1, el grupo de direcciones IP asignables para conectarse a este punto de acceso es 192.168.9 (2 ~ 10), y dns usa IP pública y de puerta de enlace.

2.3 Configuración del servicio

Use el modo de servicio para comenzar, ahorrando muchas operaciones de línea de comando

2.3.1 Script de inicio del servicio ap-start.sh

#!/bin/bash
# 开启内核IP转发
bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# 开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# 关闭NetworkManager对无线网卡的控制
#nmcli nm wifi off
nmcli device set wlan0 managed no

# 设置并启动无线网卡
ifconfig wlan0 192.168.9.1 netmask 255.255.255.0
# 解锁无线设备,可以用rfkill list查看解锁结果.
rfkill unblock wlan
# 睡眠6秒,待rfkill解锁生效
sleep 6s
# 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps -ef|egrep "dhcpd|hostapd"
nohup hostapd /etc/hostapd/hostapd.conf > /var/log/hostapd.log 2>&1 &
dhcpd wlan0 -pf /var/run/dhcpd.pid
ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"

ps -ef|egrep “dhcpd|hostapd” debe tener dos procesos,

nvidia@nvidia-desktop:~$ ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"
UID        PID  PPID  C STIME TTY          TIME CMD
root      6367     1  0 10:55 ?        00:00:00 hostapd /etc/hostapd/hostapd.conf
root      6369     1  0 10:55 ?        00:00:00 dhcpd wlan0 -pf /var/run/dhcpd.pid
nvidia    9718  9601  0 13:36 pts/0    00:00:00 grep -E --color=auto dhcpd|hostapd

Es posible que no haya un proceso dhcp, la ejecución manual dhcpd wlan0 -pf /var/run/dhcpd.pidpuede informar el error de la siguiente manera, solo dé permiso, agregue una línea antes del script chmod 777 /var/lib/dhcp/dhcpd.leases.

Internet Systems Consortium DHCP Server 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Can't open /var/lib/dhcp/dhcpd.leases for append.

If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug.  These pages explain the proper
process and the information we find helpful for debugging..

exiting.

2.3.1 Script de apagado del servicio ap-stop.sh

#!/bin/bash
killall hostapd dhcpd
bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
#ifconfig wlan0 down
nmcli device set wlan0 managed yes

2.3.2 Archivos de servicio

No escribiré por ahora. Coloque la secuencia de comandos de inicio del servicio directamente en /etc/rc.local en la secuencia de comandos de inicio automático.

Si no, puedes agregarlo de la siguiente manera sudo ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/, luego agrega el archivo sudo touch /etc/rc.localy dale permiso sudo chmod +x /etc/rc.local. Si no se puede iniciar automáticamente, debe juzgar el estado a través de systemctl status rc.local.service, y si no se inicia, debe habilitarlo.

3. prueba

Instale la tarjeta de red inalámbrica, reinicie después de la configuración, verifique la situación de la red, wlan0 está configurado como 192.168.9.1.
inserte la descripción de la imagen aquí
El punto de acceso AP también se puede buscar en el teléfono móvil, y la IP se asigna automáticamente después de la conexión.
inserte la descripción de la imagen aquí
Si no se puede hacer ping, route -nverifique si hay una tabla de enrutamiento

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.254   0.0.0.0         UG    100    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.3.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

La última línea muestra que los datos que apuntan al segmento de red 192.168.9.0 pasan a través de la interfaz wlan0. Si no es normal, se puede agregar manualmente sudo route add -net 192.168.9.0/24 dev wlan0.

Supongo que te gusta

Origin blog.csdn.net/wanggao_1990/article/details/131695812
Recomendado
Clasificación