启动网络管理服务

下面流程都是使用 systemd-networkd 提供的 DHCP 客户端和服务端,使用下面命令启动 systemd-networkd服务:

systemctl start systemd-networkd

设定 systemd-networkd 服务开机自启动:

systemctl enable systemd-networkd

连接到无线网络

  1. 安装 wpa_supplicant 软件包

  2. 使用下面命令生成配置文件,里面的 wifi 名称、密码、网卡名称替换成机器实际参数。

    wpa_passphrase [WIFI_NAME] [WIFI_PWD] > /etc/wpa_supplicant/wpa_supplicant-[IFC_NAME].conf
    
  3. 添加一个systemd-networkd 网卡配置文件 /etc/systemd/network/[IFC_NAME].network,添加下面内容:

    [Match]
    Name=[IFC_NAME]
    
    [Network]
    DHCP=yes
    IPForward=yes
    IPMasquerade=ipv4
    IPv6AcceptRA=yes
    DNS=1.1.1.1
    
    [DHCPv6]
    ForceDHCPv6PDOtherInformation=yes
    
    [DHCP]
    UseDNS=false
    
  4. 启动 systemctl start wpa_supplicant@[IFC_NAME].service,同样里面的[IFC_NAME]替换成实际网卡名称。

  5. 上面过程如果没有错误,那么这个时候已经连接到无线网络了。

  6. 设定开机自动连接:

    systemctl enable wpa_supplicant@[IFC_NAME].service
    

开启热点网络

  1. 安装软件包 hostapd
  2. 修改配置文件 /etc/hostapd/hostapd.conf,主要修改下面内容:

参数说明
interface绑定无线网卡
ssid无线热点名称
hw_mode工作模式
channel无线网络频道
wpa_passphrase无线网络密码

还有一些其他参数,自己依据实际需求修改。比较见鬼的是,我的设备是 intel 网卡,不支持开启 5G 热点(可以连接到 5G WIFI),貌似大多数 intel 网卡都是这个样子,在 Linux 下驱动没法开启热点。

  1. 同样添加一个配置文件 /etc/systemd/network/wlan0.network,添加下面内容:

    [Match]
    Name=[IFC_NAME]
    
    [Network]
    Address=192.168.0.1/24
    DHCPServer=yes
    IPForward=yes
    
    [DHCPServer]
    PoolOffset=100
    PoolSize=20
    EmitDNS=yes
    DNS=192.168.0.1
    
  2. 上面配置文件也是需要启动 systemd-networkd 服务才会生效,由 systemd-networkd提供地址分配,如果不需要自动分配 IP 也可以手动配置 IP 地址,不过比较麻烦而已。

  3. 启动服务,如果没有问题已经可以看到刚刚配置的热点。

    systemctl start hostapd.service
    
  4. 设定开机自启:

    systemctl enable hostapd.service
    
  5. 除了上面内容之外,需要转发流量的话,还需要开启内核流量转发参数,设定路由等操作。