如何在沒有網路連線的情況下建立熱點?

如何在沒有網路連線的情況下建立熱點?

我正在使用 XUbuntu 17.10 並且創建了一個 wifi 熱點,問題是我想使用該熱點進行 samba 和其他不需要網路連線的事情。我如何創建一個 wifi 熱點分享我的網路連線?這可能嗎?

答案1

一個簡單的解決方案是使用建立_ap。從他們的網站:

create_ap 是一個工具,可協助您在任何通道建立開放或加密的AP、隱藏您的SSID、停用客戶端之間的通訊(客戶端隔離)、IEEE 802.11n 和802.11ac 支援、網際網路共用方法:NAT 或橋接或無(無)網路共用)

對於您的情況,您希望使用 Linux 電腦建立一個 AP,而不將您的加密狗的互聯網共享給客戶端,但可以執行其他 LAN 操作,例如檔案共用。

您的無線網卡需要支援建立AP

  1. 安裝一些套件:

    sudo apt install util-linux bash procps hostapd iproute2 iw haveged net-tools dnsmasq iptables
    
  2. 取得create_ap包裹。從終端做

    git clone https://github.com/oblique/create_ap
    cd create_ap
    sudo make install
    
  3. ifconfig安裝後,使用(已棄用)或以下命令檢查數據機和 WiFi 卡的名稱:

    iwconfig
    

    wifi 卡通常是wlan0wlp2s0,而 USB 數據機是eth0。你的可能會有所不同

  4. 現在在沒有網路的情況下從你的 Linux 啟動熱點:

    sudo create_ap -n wlp2s0 MyAccessPoint
    

然後您可以連接客戶端。你的網路不會被分享,但你可以在沒有網路的情況下做森巴舞和其他事情

答案2

這是一個將創建熱點的腳本,但是不是Ethernet與裝置分享互聯網WiFi。您必須根據您的系統變更網路介面名稱。

鍵入ip link以找到它們。另外,請確保您已安裝dnsmasqhostapd

sudo apt-get install ifconfig dnsmasq hostapd

在運行腳本之前,您必須停止任何網路管理工具這是控制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

我已經評論了iptablepacket forwarding命令。如果任何時候您需要為設備提供互聯網,只需取消註釋即可。

運行腳本

sudo bash eth-to-wifi-route.sh

來源:eth-to-wifi-route.sh

相關內容