V-antena and Tanimoto's page

谷本の備忘録・雑記帳・work

>

Lan環境や外部wifiが無い場所でミニPCにwifiでアクセスしたかった。そこでミニPCにubuntu 24.04を入れwifiドングルを使ってAPモードを苦労したが実現できたので、メモとして残す。

想定使用環境

LAN無し、外部wifi無い場所で使う。電源はある場所で使う。APモードからインターネット接続せず。

実現環境

 1.ミニPCにwifiドングルを使い、APモードはこのドングル経由で実現する
 2.ミニPCに元からあったwifiデバイスは通常のwifi接続に使用する
 3.APモードからのアクセスはインターネット接続しない

その他の方法を選ばなかった理由

1.windowsでは既設のwifiデバイスだけでAPモードが簡単にできたが、なぜかSSIDが見えないときが結構あった。それで、簡単にあきらめた。

2.Ubntuでも、Lanやモバイルルータを前提にすれば簡単にできたのだが、モバイルルータを使わずに実現したかったのであきらめた

3.WSLででも出来そうだったが、windowsを経由するならいっそ直接やった方が処理能力的に良いのではと思いu直接のbuntu上でトライした。実際のところの比較はやれていないのでこの想定が正しいのかは不明。

設定

1.使用するソフトをインストール

sudo apt install hostapd
sudo apt install isc-dhcp-server

2.まず、wifiドングルのデバイスのIPのインターフェイス名を知る

 sudo nmcli device status を使って調べる

3.NetworkManagerがあるとwifiデバイス単位の操作が難しいのでwifiドングルをNetworkmangerの対象から外す(代わりにhostapdで行う)

sudo nano /etc/NetworkManager/conf.d/99-unmanaged-devices.conf
下記の様にする

[device-wlx123456789abc-unmanaged]
match-device=interface-name:wlx123456789abc
managed=0

4.どのデバイス(インターフェイス)をAPモードで使うかを指定する

sudo nano /etc/default/isc-dhcp-server

以下を設定。インターフェイス名は上記の2で調べたもの

4行目 : コメント解除
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf 

INTERFACESv4="wlx123456789abc"
INTERFACESv6=""

5. systemd-resolvedを使わないようにする

sudo nano /etc/NetworkManager/NetworkManager.conf

下記のfalseを追加
[main]
plugins=ifupdown,keyfile
systemd-resolved=false    <----追加

6.DHCPを設定する

sudo nano /etc/dhcp/dhcpd.conf

例えば次の様に設定する

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns1.example.org;

interfaces="wlx123456789ABC";

default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
log-facility local7;

subnet 192.168.111.0 netmask 255.255.255.0 {

option routers 192.168.111.1;
option subnet-mask 255.255.255.0;
range 192.168.111.10 192.168.111.30;
option domain-name "testtest";
option domain-name-servers 192.168.111.1, 8.8.8.8;
option broadcast-address 192.168.111.255;
default-lease-time 600;
max-lease-time 7200;


}

7. hostapd の設定

sudo nano  /etc/hostapd/hostapd.conf

例えば、下記の様に設定する

interface=wlx123456789abc
ctrl_interface=/var/run/hostapd
#ctrl_interface_group=0

driver=nl80211

ssid=YourSSID
wpa_passphrase=YourPassword
wpa=2
hw_mode=g
country_code=JP
channel=7
ieee80211d=1
wmm_enabled=0
macaddr_acl=0
auth_algs=1
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
sudo nano /etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf"
DAEMON_OPTS="-B"
#  これを忘れるとうまく起動しなかった

8.IPアドレスの設定

理由は不明だが、interfaceやhostapd, dhcpdで設定出来なかったのコマンドで設定する。

sudo nano /etc/systemd/system/my-startup2-script.service

以下の様に設定する。

[Unit]
Description=For_wifi_AP_host_ip_setting
After=network.target

[Service]
Type=simple
ExecStart=sudo ifconfig wlx123456789abc 192.168.111.1 netmask 255.255.255.0 up
Restart=no
User=root

[Install]
WantedBy=multi-user.target

サービスの登録

sudo systemctl start isc-dhcp-server.service
sudo systemctl enable isc-dhcp-server.service

sudo systemctl enable my-startup2-script.service

リブート 及び 調査で使うツール

rebootとしておしまいのはず。

参考ツール(コマンド)

sudo airmon-ng check

journalctl _PID=dddd

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

CAPTCHA



あなたはIPv4でアクセスしています