我正在使用 XUbuntu 17.10,并且创建了一个 wifi 热点,问题是我想使用热点来运行 samba 和其他不需要互联网连接的东西。如何创建一个 wifi 热点没有共享我的互联网连接?这可能吗?
答案1
一个简单的解决方案是使用创建_ap. 来自他们的网站:
create_ap 是一种工具,可帮助您在任何通道上创建开放或加密的 AP,隐藏您的 SSID,禁用客户端之间的通信(客户端隔离),IEEE 802.11n 和 802.11ac 支持,互联网共享方法:NATed 或 Bridged 或 None(无互联网共享)
对于您的情况,您想用 Linux PC 创建一个 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
然后您就可以连接客户端了。您的互联网不会被共享,但您可以在没有互联网的情况下使用 Samba 和其他功能
答案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