Estou usando o XUbuntu 17.10 e criei um hotspot wifi, o problema é que quero usar o hotspot para samba e outras coisas que não requerem conexão com a internet. como faço para criar um hotspot wi-fi quenãocompartilhar minha conexão com a internet? isso é mesmo possível?
Responder1
Uma solução simples é usarcriar_ap. Do site deles:
create_ap é uma ferramenta que ajuda você a criar um AP aberto ou criptografado em qualquer canal, ocultar seu SSID, desabilitar a comunicação entre clientes (isolamento de cliente), suporte IEEE 802.11n e 802.11ac, métodos de compartilhamento de Internet: NATed ou Bridged ou None (sem Compartilhamento de Internet)
Para o seu caso você deseja criar um AP com o pc linux sem compartilhar a internet do seu dongle com os clientes, mas pode fazer outras coisas da Lan, como compartilhamento de arquivos.
Sua placa wifi precisa suportar a criação de AP
Instale alguns pacotes:
sudo apt install util-linux bash procps hostapd iproute2 iw haveged net-tools dnsmasq iptables
Pegue o
create_ap
pacote. Do terminal façagit clone https://github.com/oblique/create_ap cd create_ap sudo make install
Após a instalação, verifique o nome do seu modem e placa wifi com
ifconfig
(obsoleto) ou:iwconfig
a placa wifi geralmente é
wlan0
ouwlp2s0
e o modem usb éeth0
. o seu pode ser diferenteAgora inicie o hotspot do seu Linux sem internet:
sudo create_ap -n wlp2s0 MyAccessPoint
Você pode então conectar clientes. Sua internet não seria compartilhada mas você pode fazer samba e outras coisas sem internet
Responder2
Aqui está um script que criará o Hotspot, masnãocompartilhe a Ethernet
Internet com os WiFi
dispositivos. Você terá que alterar o nome da interface de rede de acordo com o seu sistema.
Digite ip link
para encontrá-los. Além disso, certifique-se de ter instalado dnsmasq
e hostapd
.
sudo apt-get install ifconfig dnsmasq hostapd
Antes de executar o script você terá que parar qualquerFerramenta de gerenciamento de redeque está controlando WiFi
.
eth-to-wifi-route.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
Eu comentei os comandos iptable
e packet forwarding
. Se a qualquer momento precisar dar internet aos dispositivos é só descomentar.
Execute o script
sudo bash eth-to-wifi-route.sh
Fonte:eth-to-wifi-route.sh