¿Cómo sugeriría crear un punto de acceso desde una terminal raíz?
necesitaria crear
Estoy buscando un equivalente de create_ap
para Android. Aquí está la sección de ayuda completa para obtener una idea de lo que necesitaría:
Usage: create_ap [options] <wifi-interface> [<interface-with-internet>] [<access-point-name> [<passphrase>]]
Options:
-h, --help Show this help
--version Print version number
-c <channel> Channel number (default: 1)
-w <WPA version> Use 1 for WPA, use 2 for WPA2, use 1+2 for both (default: 1+2)
-n Disable Internet sharing (if you use this, don't pass
the <interface-with-internet> argument)
-m <method> Method for Internet sharing.
Use: 'nat' for NAT (default)
'bridge' for bridging
'none' for no Internet sharing (equivalent to -n)
--psk Use 64 hex digits pre-shared-key instead of passphrase
--hidden Make the Access Point hidden (do not broadcast the SSID)
--mac-filter Enable MAC address filtering
--mac-filter-accept Location of MAC address filter list (defaults to /etc/hostapd/hostapd.accept)
--redirect-to-localhost If -n is set, redirect every web request to localhost (useful for public information networks)
--hostapd-debug <level> With level between 1 and 2, passes arguments -d or -dd to hostapd for debugging.
--isolate-clients Disable communication between clients
--ieee80211n Enable IEEE 802.11n (HT)
--ieee80211ac Enable IEEE 802.11ac (VHT)
--ht_capab <HT> HT capabilities (default: [HT40+])
--vht_capab <VHT> VHT capabilities
--country <code> Set two-letter country code for regularity (example: US)
--freq-band <GHz> Set frequency band. Valid inputs: 2.4, 5 (default: 2.4)
--driver Choose your WiFi adapter driver (default: nl80211)
--no-virt Do not create virtual interface
--no-haveged Do not run 'haveged' automatically when needed
--fix-unmanaged If NetworkManager shows your interface as unmanaged after you
close create_ap, then use this option to switch your interface
back to managed
--mac <MAC> Set MAC address
--dhcp-dns <IP1[,IP2]> Set DNS returned by DHCP
--daemon Run create_ap in the background
--stop <id> Send stop command to an already running create_ap. For an <id>
you can put the PID of create_ap or the WiFi interface. You can
get them with --list-running
--list-running Show the create_ap processes that are already running
--list-clients <id> List the clients connected to create_ap instance associated with <id>.
For an <id> you can put the PID of create_ap or the WiFi interface.
If virtual WiFi interface was created, then use that one.
You can get them with --list-running
--mkconfig <conf_file> Store configs in conf_file
--config <conf_file> Load configs from conf_file
Non-Bridging Options:
--no-dns Disable dnsmasq DNS server
-g <gateway> IPv4 Gateway for the Access Point (default: 192.168.12.1)
-d DNS server will take into account /etc/hosts
Useful informations:
* If you're not using the --no-virt option, then you can create an AP with the same
interface you are getting your Internet connection.
* You can pass your SSID and password through pipe or through arguments (see examples).
* On bridge method if the <interface-with-internet> is not a bridge interface, then
a bridge interface is created automatically.
Examples:
create_ap wlan0 eth0 MyAccessPoint MyPassPhrase
echo -e 'MyAccessPoint\nMyPassPhrase' | create_ap wlan0 eth0
create_ap wlan0 eth0 MyAccessPoint
echo 'MyAccessPoint' | create_ap wlan0 eth0
create_ap wlan0 wlan0 MyAccessPoint MyPassPhrase
create_ap -n wlan0 MyAccessPoint MyPassPhrase
create_ap -m bridge wlan0 eth0 MyAccessPoint MyPassPhrase
create_ap -m bridge wlan0 br0 MyAccessPoint MyPassPhrase
create_ap --driver rtl871xdrv wlan0 eth0 MyAccessPoint MyPassPhrase
create_ap --daemon wlan0 eth0 MyAccessPoint MyPassPhrase
create_ap --stop wlan0
Esto se hace con hostapd
ubicado en /system/bin/hostapd
en principio.
Puede generar un punto de acceso a través de la interfaz y obtener el comando con
ps | grep hostapd
Mi respuesta a ¿Cómo usar un dispositivo Android como enrutador sin conexión celular? incluye un script de shell que hace exactamente lo que quiere usando hostapd
/ wpa_supplicant
y dnsmasq
, lo único adicional que se puede hacer es compartir en Internet:
# allow IP forwarding
echo 1 >/proc/sys/net/ipv4/ip_forward
# allow forwrding through firewall
iptables -I FORWARD -i $AP_INTERFACE -s ${IP}/24 -j ACCEPT
iptables -I FORWARD -i $WIFI_INTERFACE -d ${SUBNET}.0/24 -j ACCEPT
# source NAT
iptables -t nat -I POSTROUTING -s ${SUBNET}.0/24 ! -o $AP_INTERFACE -j MASQUERADE
Al apagar haz lo contrario.
RELACIONADO: