ワイヤレス ネットワーク カードの AP モードを Wi-Fi ホットスポットとして構成します。

1. ネットワーク カードが AP をサポートしているかどうかを確認します。

内蔵ワイヤレス ネットワーク カードであるか外部 USB ワイヤレス ネットワーク カードであるかに関係なく、最初に AP ホットスポット モードとして設定する必要があります。APモードをサポートしているかどうかを確認する必要があります。

たとえば、rtl8811c デュアルバンド USB ワイヤレス ネットワーク カードをここに挿入するiwconfigと、ネットワーク カード情報が表示されます。

nvidia@nvidia-desktop:~$ iwconfig
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

挿入されたネットワーク カードに関する対応する情報がない場合は、ドライバーのインストールが必要になる場合があります。

その後、コマンドを使用して、iw list「サポートされているインターフェイス モード:」でサポートされているリストに AP があるかどうかを確認します。存在する場合は、AP ホットスポットとしての設定がサポートされていることを意味します。

nvidia@nvidia-desktop:~$ iw list
Wiphy phy1
        max # scan SSIDs: 9
        max scan IEs length: 2304 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
                * CCMP-128 (00-0f-ac:4)
                * CMAC (00-0f-ac:6)
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * P2P-client
                 * P2P-GO
                 * P2P-device

2. ワイヤレスホットスポットモードを設定する

hostapd と dhcpd を使用して、Ubuntu システム上にワイヤレス ホットスポットを確立します。

2.1. hostapd と dhcpd のインストール

インストールsudo apt-get install hostapd

起動時にこれら 2 つのサービスを開始する必要はありません。オフにすることをお勧めします。

sudo update-rc.d -f hostapd remove

sudo apt-get install isc-dhcp-server、次の 2 つのファイル (存在する場合) を変更し、行の先頭をコメントアウトします。

sudo vim /etc/init/isc-dhcp-server.conf
sudo vim /etc/init/isc-dhcp-server6.conf

2.2. ホットスポットの設定

2.2.1. /etc/hostapd/hostapd.conf を変更する

ファイルを変更していない場合は、ファイルを直接追加してください。AP の設定に使用するインターフェース、ドライバー、名前、パスワードなどは次のとおりです。

# 选择的网口名称,我这里是wlan0。具体可以ifcofnig看下当前设备下偶那些网口
interface=wlan0
# 线驱动,一般有两种:wext/nl80211,wext版本较旧目前一般使用nl80211
driver=nl80211
# AP的名称,类似于我们的路由器名称
ssid=magicsky_uav
# 802.11g,一般三个模式: a,b,g。a->5GHZ,g->2.4GHZ
hw_mode=g
# wifi工作的信道,2.4GHZ(1~14)
channel=10
macaddr_acl=0
auth_algs=3
# 选择加密方式为WPA2,常用加解密方法是有WEP、WPA、WPA2、WPA3
wpa=2
# 密码
wpa_passphrase=12345678
# 加密方法和算法
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

2.2.2. /etc/dhcp/dhcpd.conf を変更する

/etc/dhcp/dhcpd.conf の末尾に次の内容を追加して、IP アドレス プール、ルーティング ゲートウェイ、DNS などを構成します。

subnet 192.168.9.0 netmask 255.255.255.0
{
    
    
  range 192.168.9.2 192.168.9.10;
  option routers 192.168.9.1;
  option domain-name-servers 192.168.9.1,114.114.114.114,8.8.8.8;
}

ここでは、ワイヤレス ネットワーク カードの AP アドレスを 192.168.9.1 に設定し、このホットスポットに接続するために割り当て可能な IP アドレス プールは 192.168.9. (2~10) で、DNS はパブリック IP とゲートウェイ IP を使用します。

2.3. サービス構成

サービス モードを使用して開始すると、多くのコマンド ライン操作が節約されます

2.3.1. サービス起動スクリプト ap-start.sh

#!/bin/bash
# 开启内核IP转发
bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# 开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# 关闭NetworkManager对无线网卡的控制
#nmcli nm wifi off
nmcli device set wlan0 managed no

# 设置并启动无线网卡
ifconfig wlan0 192.168.9.1 netmask 255.255.255.0
# 解锁无线设备,可以用rfkill list查看解锁结果.
rfkill unblock wlan
# 睡眠6秒,待rfkill解锁生效
sleep 6s
# 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps -ef|egrep "dhcpd|hostapd"
nohup hostapd /etc/hostapd/hostapd.conf > /var/log/hostapd.log 2>&1 &
dhcpd wlan0 -pf /var/run/dhcpd.pid
ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"

ps -ef|egrep “dhcpd|hostapd” には 2 つのプロセスが必要です。

nvidia@nvidia-desktop:~$ ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"
UID        PID  PPID  C STIME TTY          TIME CMD
root      6367     1  0 10:55 ?        00:00:00 hostapd /etc/hostapd/hostapd.conf
root      6369     1  0 10:55 ?        00:00:00 dhcpd wlan0 -pf /var/run/dhcpd.pid
nvidia    9718  9601  0 13:36 pts/0    00:00:00 grep -E --color=auto dhcpd|hostapd

dhcp プロセスがない可能性があります。手動で実行するとdhcpd wlan0 -pf /var/run/dhcpd.pid次のようなエラーが報告される場合があります。許可を与えて、スクリプトの前に行を追加してくださいchmod 777 /var/lib/dhcp/dhcpd.leases

Internet Systems Consortium DHCP Server 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Can't open /var/lib/dhcp/dhcpd.leases for append.

If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug.  These pages explain the proper
process and the information we find helpful for debugging..

exiting.

2.3.1. サービスシャットダウンスクリプト ap-stop.sh

#!/bin/bash
killall hostapd dhcpd
bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
#ifconfig wlan0 down
nmcli device set wlan0 managed yes

2.3.2. サービスファイル

今のところ書きません。サービス起動スクリプトを自己起動スクリプトの /etc/rc.local に直接記述します。

そうでない場合は、次の方法で追加しsudo ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/、ファイルを追加してsudo touch /etc/rc.local許可を与えますsudo chmod +x /etc/rc.local自動起動できない場合はsystemctl status rc.local.serviceで状態を判断し、起動しない場合は有効にする必要があります。

3. テスト

ワイヤレス ネットワーク カードを取り付け、構成後に再起動し、ネットワーク状況を確認します。wlan0 は 192.168.9.1 として構成されています。
ここに画像の説明を挿入
AP ホットスポットは携帯電話でも検索でき、接続後に IP が自動的に割り当てられます。
ここに画像の説明を挿入
pingが通らない場合は、route -nルーティングテーブルがあるか確認してください。

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.254   0.0.0.0         UG    100    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.3.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

最後の行は、192.168.9.0 ネットワーク セグメントを指すデータがインターフェイス wlan0 を通過することを示しています。正常でない場合は手動で追加できますsudo route add -net 192.168.9.0/24 dev wlan0

おすすめ

転載: blog.csdn.net/wanggao_1990/article/details/131695812