私はXUbuntu 17.10を使用していますが、wifiホットスポットを作成しました。問題は、sambaなど、インターネット接続を必要としないその他のものにホットスポットを使用したいことです。 しないインターネット接続を共有するwifiホットスポットを作成するにはどうすればよいですか?これも可能ですか?
簡単な解決策は、 create_ap を使用することです。彼らのサイトから:
create_apは、任意のチャネルでオープンまたは暗号化されたAPの作成、SSIDの非表示、クライアント間の通信の無効化(クライアント分離)、IEEE 802.11nおよび802.11acサポート、インターネット共有方法:NATedまたはBridgedまたはNone(noインターネットの共有)
あなたのケースでは、ドングルからクライアントにインターネットを共有せずに、Linux PCでAPを作成したいが、ファイル共有のような他のLanのものを行うことができます。
あなたのWiFiカードは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
その後、クライアントを接続できます。インターネットは共有されませんが、インターネットなしでサンバなどを実行できます
ホットスポットを作成するがnotスクリプトは、Ethernet
インターネットをWiFi
デバイスと共有します。システムに応じてネットワークインターフェイス名を変更する必要があります。
ip link
と入力してそれらを見つけます。また、dnsmasq
およびhostapd
がインストールされていることを確認してください。
Sudo apt-get install ifconfig dnsmasq hostapd
スクリプトを実行する前に、WiFi
を制御しているNetwork Management Toolを停止する必要があります。
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
ソース: eth-to-wifi-route.sh