Linux 中 WIFI 和熱點的使用

浇筑菜鸟發表於2024-07-13

之前一直在 ubuntu 的圖形介面中使用,突然需要在 ARM 板上開啟熱點,一時給弄蒙了,在此記錄一下

一、網路卡命令

  • 顯示所有網路資訊

    sudo ip link show 
    
  • 關閉或開啟網路

    sudo ip link set wlan0 down
    sudo ip link set wlan0 up
    
  • 啟用或啟動網路

    sudo ifconfig wlan0 up
    
  • 設定 ip 地址

    sudo ifconfig wlan0 192.168.1.102
    
  • 檢視是否支援 ap 模式

    sudo iw dev wlan0 info
    

二、WIFI 連線工具

在 linux 中管理 WIFI 的工具有很多,比如 wpa_supplicant、iw、netctl、connmanctl等

connmanctl 工具

# 進入管理工具
sudo connmanctl 

# 是能wifi
connmanctl enable wifi

# 開啟代理
agent on

# 掃描 wifi
scan wifi

# 列出掃描的wifi列表,包括已連線的
services 

# 連線wifi
connect <UUID>

# 斷開wifi
disconnect <UUID>

# 檢查當前連線的網路資訊
info <UUID>

# 刪除連線記錄
remove <UUID>

# 退出
exit

三、熱點使用

開啟熱點主要使用的工具是 hostapd

  • 編寫熱線 /etc/hostapd/hostapd.conf 配置檔案,檔名可以任意

    interface=wlan0     # 你的無線介面名
    driver=nl80211      # 無線驅動型別
    ssid=MyHotspot      # 熱點名稱
    hw_mode=g           # 工作模式,g為802.11g,n為802.11n
    channel=6           # 無線頻道
    macaddr_acl=0       # 不限制MAC地址
    auth_algs=1         # 認證演算法
    ignore_broadcast_ssid=0
    wpa=2               # WPA2安全
    wpa_passphrase=MyPassPhrase # 密碼
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    

    注意: 通暢情況下這麼配置沒問題,需要注意的是不熱模組之間可能有細微的區別,主要檢視對應的手冊

  • 啟動熱點

    sudo hostapd -B /etc/hostapd/hostapd.conf
    

    注意:此時啟動的熱點可以掃描到,但是無法連線,因為熱點還無法為裝置自動分配ip

四、動態 ip 分配

目前常用的工具有 dnsmasq 和 udhcp,可以更具自己的需要進行選擇,需要注意的是這兩個工具都分為服務端和客戶端,想要為熱點分配 動態 ip 時,工具都要作為服務端才行

udhcp 使用

  • 安裝 udhcp
    安裝的過程這裡就不介紹了,可以參考這位大佬的部落格:https://www.cnblogs.com/schips/p/12132115.html

  • 在 /etc/udhcpd.conf 中配置服務端資訊,檔案不存在建立即可

    # The start and end of the IP lease block
    start       192.168.1.20    #default: 192.168.0.20   客戶端分配的地址範圍
    end        192.168.1.25    #default: 192.168.0.254
    # The interface that udhcpd will use
    interface   wlan0       #default: eth 0 #目標板子上的無線網路卡wlan0
    #Examles
    opt dns 222.201.130.30 222.201.130.33   #dns伺服器
    option subnet 255.255.255.0
    opt router 192.168.1.10                    #wlan的 ip地址,做為閘道器地址
    option dns 192.168.1.10                    # appened to above DNS servers  for a total of 3
    option domain local
    option lease   864000      # 10 days of seconds
    
  • 啟動服務

    sudo udhcpd
    

主要:這個和熱點的啟動無先後順序,但是需要啟動動態 ip 分配熱點才能連線,但是會發現此時的熱點還不能上網,需要進行 ip 轉發才行

五、IP 轉發

  • 配置 ip 轉發

    # 檢查是否啟用了IP轉發
    sudo sysctl net.ipv4.ip_forward
    
    # 臨時啟動轉發
    sudo sysctl -w net.ipv4.ip_forward=1
    
    # 永久啟動轉發,檔案不存在時建立即可
    sudo vi /etc/sysctl.conf   
    # 在檔案中新增
    net.ipv4.ip_forward=1
    # 立即生效
    sudo sysctl -p /etc/sysctl.conf
    # 檢查是否應用
    cat /proc/sys/net/ipv4/ip_forward
    
  • 設定 NAT 規則

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

參考連結

arm linux 移植 udhcp 與 使用:https://www.cnblogs.com/schips/p/12132115.html

相關文章