我正在使用 XUbuntu 17.10 並且創建了一個 wifi 熱點,問題是我想使用該熱點進行 samba 和其他不需要網路連線的事情。我如何創建一個 wifi 熱點不分享我的網路連線?這可能嗎?
答案1
一個簡單的解決方案是使用建立_ap。從他們的網站:
create_ap 是一個工具,可協助您在任何通道建立開放或加密的AP、隱藏您的SSID、停用客戶端之間的通訊(客戶端隔離)、IEEE 802.11n 和802.11ac 支援、網際網路共用方法:NAT 或橋接或無(無)網路共用)
對於您的情況,您希望使用 Linux 電腦建立一個 AP,而不將您的加密狗的互聯網共享給客戶端,但可以執行其他 LAN 操作,例如檔案共用。
您的無線網卡需要支援建立AP
安裝一些套件:
sudo apt install util-linux bash procps hostapd iproute2 iw haveged net-tools dnsmasq iptables
取得
create_ap
包裹。從終端做git clone https://github.com/oblique/create_ap cd create_ap sudo make install
ifconfig
安裝後,使用(已棄用)或以下命令檢查數據機和 WiFi 卡的名稱:iwconfig
wifi 卡通常是
wlan0
或wlp2s0
,而 USB 數據機是eth0
。你的可能會有所不同現在在沒有網路的情況下從你的 Linux 啟動熱點:
sudo create_ap -n wlp2s0 MyAccessPoint
然後您可以連接客戶端。你的網路不會被分享,但你可以在沒有網路的情況下做森巴舞和其他事情
答案2
這是一個將創建熱點的腳本,但是不是Ethernet
與裝置分享互聯網WiFi
。您必須根據您的系統變更網路介面名稱。
鍵入ip link
以找到它們。另外,請確保您已安裝dnsmasq
和hostapd
。
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
我已經評論了iptable
和packet forwarding
命令。如果任何時候您需要為設備提供互聯網,只需取消註釋即可。
運行腳本
sudo bash eth-to-wifi-route.sh