Ad-hoc networking - Arch Linux 中文维基

跳至內容

# Ad-hoc networking

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Ad-hoc_networking，最近一次同步於 2022-08-25，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- 網絡配置
- 無線設置
- 軟AP
- Internet sharing

Independent Basic Service Set(獨立基本服務集)，縮寫是 IBSS，也被稱為自組網絡，是一種不使用中心控制節點，就能讓一組設備相互通訊的方法。是點對點網絡的一種，網絡中的設備直接通訊，不需要中轉。自組網絡可以用來進行網絡共享。

## 要求

所有要連接到網絡的設備都具有兼容 [1] 的無線網卡。

## Wifi 鏈路層

因為 IBSS 網絡是點對點網絡，所有設備都應該使用相同的 wifi 連接設置。

提示：可以設置更複雜的網絡拓撲，Linux 無線文檔 包含更高級的示例。

### 手動設置

警告：此方法創建的是 非加密 自組網絡，要創建加密網絡，請參考 #wpa_supplicant.

詳細信息請參考網絡配置/Wireless#iw。請先安裝軟體包 iw包。

設置操作模式為 ibss:

    # iw interface set type ibss

啟動接口(可能需要額外的 `rfkill unblock wifi`):

    # ip link set interface up

現在可以創建自組網絡了，將 your_ssid 替換為實際的網絡，frequency 替換為以 MHz 為單位的頻率。頻道和頻率的對應關係，請參考, 這裡。

    # iw interface ibss join your_ssid frequency

### wpa_supplicant

確保已經安裝了 wpa_supplicant包，並進行了配置(參考 wpa_supplicant).

    /etc/wpa_supplicant-adhoc.conf

    ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel

    # use 'ap_scan=2' on all devices connected to the network
    # this is unnecessary if you only want the network to be created when no other networks are available
    ap_scan=2

    network={
        ssid="MySSID"
        mode=1
        frequency=2432
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        psk="secret passphrase"
    }

所有連接到網絡的設備運行下面 wpa_supplicant 命令:

    # wpa_supplicant -B -i interface -c /etc/wpa_supplicant-adhoc.conf -D nl80211,wext

## 網絡配置

最後一步是給網絡中的所有設備分配 IP 地址，有多種方法：

- 分配靜態 IP 地址，參考：網絡配置#Static IP address.
- 在一個設備上運行 DHCP，參考 dhcpd 或 dnsmasq.
- 運行 avahi-autoipd. 參考 Avahi#Obtaining IPv4LL IP address.

要向自組網絡共享外網連接，請參考 Internet sharing.

## 技巧

### 使用 NetworkManager

如果使用 NetworkManager，可以使用 nm-applet 進行自組網絡配置，不用使用手動方法。詳情參考 NetworkManager#Sharing internet connection over Wi-Fi。

### 自定義 systemd 服務(使用 wpa_supplicant 和靜態 IP)

可以使用下面模板啟用無線自組網絡：

    /etc/conf.d/network-wireless-adhoc@interface

    addr=192.168.0.2
    mask=24

    /etc/systemd/system/network-wireless-adhoc@.service

    [Unit]
    Description=Ad-hoc wireless network connectivity (%i)
    Wants=network.target
    Before=network.target
    BindsTo=sys-subsystem-net-devices-%i.device
    After=sys-subsystem-net-devices-%i.device

    [Service]
    Type=oneshot
    RemainAfterExit=yes
    EnvironmentFile=/etc/conf.d/network-wireless-adhoc@%i

    # perhaps rfkill is not needed for you
    ExecStart=/usr/bin/rfkill unblock wifi
    ExecStart=/usr/bin/ip link set %i up
    ExecStart=/usr/bin/wpa_supplicant -B -i %i -D nl80211,wext -c /etc/wpa_supplicant-adhoc.conf
    ExecStart=/usr/bin/ip addr add ${addr}/${mask} dev %i

    ExecStop=/usr/bin/ip addr flush dev %i
    ExecStop=/usr/bin/ip link set %i down

    [Install]
    WantedBy=multi-user.target

## See also

- Ubuntu community wiki WifiDocs/Adhoc
- Manual about creating an Ad-Hoc network on UbuntuGeek
- Share your 3G Internet connection over wifi

分類：​

- 無線網絡

Ad-hoc networking
新增話題