Estoy usando XUbuntu 17.10 y he creado un punto de acceso wifi, el problema es que quiero usar el punto de acceso para samba y otras cosas que no requieren una conexión a Internet. ¿Cómo creo un punto de acceso wifi quenocompartir mi conexión a internet? ¿Es esto siquiera posible?
Respuesta1
Una solución sencilla es utilizarcrear_ap. Desde su sitio:
create_ap es una herramienta que le ayuda a crear un AP abierto o cifrado en cualquier canal, ocultar su SSID, desactivar la comunicación entre clientes (aislamiento de cliente), soporte IEEE 802.11n y 802.11ac, métodos para compartir Internet: NATed o Bridged o Ninguno (no Compartiendo por medio de Internet)
En su caso, desea crear un AP con la PC con Linux sin compartir Internet desde su dongle con los clientes, pero puede hacer otras cosas de Lan, como compartir archivos.
Su tarjeta wifi debe admitir la creación de AP
Instale algunos paquetes:
sudo apt install util-linux bash procps hostapd iproute2 iw haveged net-tools dnsmasq iptables
Consigue el
create_ap
paquete. Desde la terminal hacergit clone https://github.com/oblique/create_ap cd create_ap sudo make install
Después de la instalación, verifique el nombre de su módem y tarjeta wifi con
ifconfig
(obsoleto) o:iwconfig
La tarjeta wifi suele ser
wlan0
owlp2s0
y el módem USBeth0
. el tuyo puede ser diferenteAhora inicie el hotspot desde su Linux sin Internet:
sudo create_ap -n wlp2s0 MyAccessPoint
Luego puede conectar clientes. Tu internet no será compartido pero puedes hacer samba y otras cosas sin internet
Respuesta2
Aquí hay un script que creará Hotspot peronocompartir Ethernet
Internet con los WiFi
dispositivos. Tendrá que cambiar el nombre de la interfaz de red según su sistema.
Escribe ip link
para encontrarlos. Además, asegúrese de tener instalado dnsmasq
y hostapd
.
sudo apt-get install ifconfig dnsmasq hostapd
Antes de ejecutar el script tendrás que detener cualquierHerramienta de gestión de redque es controlar WiFi
.
ruta-eth-a-wifi.sh
#!/bin/bash
# Share Eth with WiFi Hotspot
#
# This script is created to work with Raspbian Stretch
# but it can be used with most of the distributions
# by making few changes.
#
# Make sure you have already installed `dnsmasq` and `hostapd`
# Please modify the variables according to your need
# Don't forget to change the name of network interface
# Check them with `ifconfig`
ip_address="192.168.2.1"
netmask="255.255.255.0"
dhcp_range_start="192.168.2.2"
dhcp_range_end="192.168.2.100"
dhcp_time="12h"
eth="eth0" # replace it with Huawei 3G Modem interface
wlan="wlan0"
ssid="Arpit-Raspberry"
psk="arpit1997"
sudo rfkill unblock wlan &> /dev/null
sleep 2
#sudo iptables -F
#sudo iptables -t nat -F
#sudo iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE
#sudo iptables -A FORWARD -i $eth -o $wlan -m state --state RELATED,ESTABLISHED -j ACCEPT
#sudo iptables -A FORWARD -i $wlan -o $eth -j ACCEPT
#sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo ifconfig $wlan $ip_address netmask $netmask
sudo ip route del 0/0 dev $wlan &> /dev/null
a=`route | awk "/${eth}/"'{print $5+1;exit}'`
sudo route add -net default gw $ip_address netmask 0.0.0.0 dev $wlan metric $a
echo -e "interface=$wlan \n\
bind-interfaces \n\
server=8.8.8.8 \n\
domain-needed \n\
bogus-priv \n\
dhcp-range=$dhcp_range_start,$dhcp_range_end,$dhcp_time" > /etc/dnsmasq.conf
sudo systemctl restart dnsmasq
echo -e "interface=$wlan\n\
driver=nl80211\n\
ssid=$ssid\n\
hw_mode=g\n\
ieee80211n=1\n\
wmm_enabled=1\n\
macaddr_acl=0\n\
auth_algs=1\n\
ignore_broadcast_ssid=0\n\
wpa=2\n\
wpa_key_mgmt=WPA-PSK\n\
wpa_passphrase=$psk\n\
rsn_pairwise=CCMP" > /etc/hostapd/hostapd.conf
sudo systemctl restart hostapd
sudo systemctl status hostapd &> /dev/null
if [ "$?" != 0 ];then
echo "Some Network Management tool is running, which is stopping"
echo "hostapd to be configured."
echo "Please stop that and again run the script."
fi
He comentado los comandos iptable
y packet forwarding
. Si en algún momento necesita dar Internet a los dispositivos, simplemente descoméntelos.
Ejecute el script
sudo bash eth-to-wifi-route.sh
Fuente:ruta-eth-a-wifi.sh