dnsmasq を使用して DHCP および DNS 経由で固定 IP Wi-Fi ホットスポット (インターネットなし) を設定する

dnsmasq を使用して DHCP および DNS 経由で固定 IP Wi-Fi ホットスポット (インターネットなし) を設定する

マイコンピュータ(Ubuntu 18.04を実行)を手動固定IPを使用するホットスポットとして設定することはできません。私はデバイスがWiFi経由で接続し、ポート80を介してコンピュータにホストされているWebサイトにアクセスできるようにしたいです。

だから私のコンピュータの固定IPを192.168.10.1に設定したいので、ホットスポットを次のように設定しました。

INTERFACE=wlan0 # My wifi card interface
CONNECTION_NAME=testhotspot
MY_IP="192.168.10.1"

sudo nmcli con add type wifi ifname $INTERFACE con-name $CONNECTION_NAME autoconnect yes ssid $CONNECTION_NAME
sudo nmcli con modify $CONNECTION_NAME 802-11-wireless.mode ap ipv4.method manual ipv4.addresses $MY_IP/24 ipv4.gateway $MY_IP
sudo nmcli con modify $CONNECTION_NAME wifi-sec.key-mgmt wpa-psk 
sudo nmcli con modify $CONNECTION_NAME wifi-sec.psk "somepassword"
# do I need to set ipv4.dns?

次に dnsmasq(in) を次のように設定しました/etc/dnsmasq

address=/#/127.0.0.1
interface=wlan0
except-interface=lo
listen-address=::1,127.0.0.1,192.168.10.1

# DHCP setup
dhcp-range=192.168.10.100,192.168.10.200,12h # lease out 192.168.10.100-200
dhcp-option=option:router,192.168.10.1
dhcp-option=option:dns-server,192.168.10.1
dhcp-option=option:netmask,255.255.255.0
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative

dnsmasqとホットスポットを起動します。

sudo nmcli con up testhotspot
sudo systemctl restart dnsmasq.service

この設定を使用すると、Ubuntuを実行している別のコンピュータ(このコンピュータをBと呼ばれる)のWi-Fiホットスポットに接続し、192.168.1.10に正常にpingを送信し、192.168.10.1:80で自分のWebサイトにアクセスできるようになります。わかりました。

しかし、Android携帯電話を使用して接続しようとすると問題が発生し、接続が切断され続けました。 192.168.10.1に正常にpingを送信するには、Android Wi-Fi設定を「DHCP」ではなく「静的」に変更し、DNSを192.168.10.1に指定する必要がありました。もしそうなら、私のDNS / DHCPサーバーがクライアントに正しく「知られていない」ようです。ホットスポット設定をnmcli con modify testhotspot ipv4.dns 192.168.10.1

また、コンピュータBが私のホットスポットサーバーのWi-Fiとインターネットを提供するルーターに接続されている間、ホットスポットサーバーへのWi-Fiが切断されるまで、一部のパブリックウェブサイト(このaskubuntuサイトなど)にアクセスできないという事実も見つかりました。上記の設定で私が何を間違っているのでしょうか?

ベストアンサー1

私の間違いを見つけました。実際にはDNSは必要ないので、isc-dhcp-server dhcpd.confを次のように使用するように切り替えました。

default-lease-time 600;
max-lease-time 7200;
authoritative;
 
subnet 192.168.10.0 netmask 255.255.255.0 {
 range 192.168.10.100 192.168.10.200;
 option routers 192.168.10.1;
}

インターフェイスは/etc/default/isc-dhcp-serverに設定されています。

編集:dnsmasqを再利用することにしました。このdnsmasq.confは私にとって効果的でした。

no-resolv
bind-interfaces
interface=wlan0 # My hotspot interface
listen-address=192.168.10.1

dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,12h
dhcp-option=option:router,192.168.10.1
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative

おすすめ記事