如何在没有互联网的情况下创建热点?


8

我正在使用XUbuntu 17.10,并且创建了一个wifi热点,问题是我想将该热点用于samba和其他不需要Internet连接的东西。如何创建共享我的互联网连接的wifi热点?这有可能吗?


您如何将主机(广播热点的机器)连接到互联网?以太网?
Yaksha

我正在使用华为3G调制解调器@Yaksha,它通过USB端口连接
zola

Answers:


2

一个简单的解决方案是使用create_ap。从他们的网站:

create_ap是一种工具,可帮助您在任何通道上创建开放或加密的AP,隐藏SSID,禁用客户端之间的通信(客户端隔离),IEEE 802.11n和802.11ac支持,Internet共享方法:NATed或Bridged或None(否)网络分享)

对于您的情况,您希望使用linux pc创建一个AP,而无需从加密狗到客户端共享Internet,但是可以执行其他Lan任务,例如文件共享。

您的wifi卡需要支持创建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
    

然后,您可以连接客户端。您的互联网不会共享,但是您可以在没有互联网的情况下进行桑巴舞和其他事情


1

这是一个将创建热点但EthernetWiFi设备共享Internet 的脚本。您将必须根据您的系统更改网络接口名称。

输入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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.