Ich konnte mein Problem lösen und wollte mit anderen teilen, die in der Zukunft möglicherweise einem ähnlichen Problem gegenüberstehen.
Mein Netzwerk
- enp3s0 - Physikalischer Ethernet-Adapter
- enp3s0.10 - VLAN; verbindet sich mit LAN
- enp3s0.99 - VLAN; verbindet sich mit WAN (Kabelmodem)
- wls4 - Drahtloser Adapter
Lösung
Definieren Sie jede Netzwerkschnittstelle (einschließlich einer Bridge-Schnittstelle mit dem Namen br0 ).
Setzen Sie den Wert von / etc / sysconfig / network-scripts / ifcfg-enp3s0 auf:
TYPE=Ethernet BOOTPROTO=none DEVICE=enp3s0 ONBOOT=yes
Setzen Sie den Wert von / etc / sysconfig / network-scripts / ifcfg-br0 auf:
DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none
Setzen Sie den Wert von /etc/sysconfig/network-scripts/ifcfg-enp3s0.10 auf:
DEVICE=enp3s0.10 BOOTPROTO=none ONBOOT=yes BRIDGE=br0 VLAN=yes
Setzen Sie den Wert von /etc/sysconfig/network-scripts/ifcfg-enp3s0.99 auf:
DEVICE=enp3s0.99 BOOTPROTO=dhcp ONBOOT=yes VLAN=Yes
Starten Sie das Netzwerk neu
[admin@router ~]$ sudo service network start
Richten Sie hostapd ein
Setzen Sie den Wert von /etc/hostapd/hostapd.conf auf:
# # For more information: # # https://wireless.wiki.kernel.org/en/users/Documentation/hostapd # https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf # # Wireless Interface interface=wls4 driver=nl80211 # Wireless Environment ssid=[router_ssid_here] hw_mode=g channel=1 # Authentication and Encryption macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=[ap_password_here] wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP # Country country_code=US ieee80211d=1 # IEEE 802.11ac (req hw_mode=a) # ieee80211ac=1 # IEEE 802.11n ieee80211n=1 # WMM wmm_enabled=1
Erstellen Sie einen systemd-Dienst, um wls4 zur Bridge br0 hinzuzufügen, und starten Sie hostapd. Ich habe das aus folgenden Gründen getan:
- wls4 würde sporadisch von der Brücke fallen br0 wenn ich die Brücke Erklärung in hostapd.conf hinzugefügt
- Bevor hostapd erfolgreich gestartet werden konnte, musste ich zuerst anrufen
rfkill unblock wlan
Erstellen Sie /root/launch_hostapd.sh (muss als root ausgeführt werden)
#!/bin/bash # Set 4addr on wifi adapter iw dev wls4 set 4addr on # Add wifi adapter to bridge br0 ip link set wls4 master br0 # Unblock wlan rfkill unblock wlan # Launch hostapd systemctl start hostapd
Machen Sie /root/launch_hostapd.sh ausführbar
[admin@router ~]$ sudo chmod +x /root/launch_hostapd.sh
Erstellen Sie /etc/systemd/system/launch_hostapd.service (muss als root ausgeführt werden)
[Unit] Description=Runs "rfkill unblock wlan" and then launches hostapd After=network.target [Service] Type=simple ExecStart=/root/launch_hostapd.sh TimeoutStartSec=0 [Install] WantedBy=default.target
Laden Sie den Systemctl-Daemon neu
[admin@router ~]$ sudo systemctl daemon-reload
Aktivieren / Starten Sie den Dienst "launch_hostpad"
[admin@router ~]$ sudo systemctl enable launch_hostapd [admin@router ~]$ sudo systemctl start launch_hostapd
Fazit
Ich hoffe, das hilft allen anderen, die ihre LAN- und WLAN-Schnittstellen überbrücken möchten, um einen AP über hostapd zu hosten.