在 wpa_supplicant
中设置静态 IP 需要结合 wpa_supplicant
(管理无线认证)和 手动网络配置(如 ip
命令或 netplan
/NetworkManager
),因为 wpa_supplicant
本身主要负责认证(如 WPA/WPA2),不直接分配 IP。以下是具体方法:
方法 1:通过 wpa_supplicant.conf
+ 手动静态 IP(推荐)
1. 编辑 /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
update_config=1
network={
ssid="你的WiFi名称"
psk="WiFi密码"
key_mgmt=WPA-PSK
# 可选:指定优先级(多个网络时)
priority=10
}
保存后重启 wpa_supplicant
:
sudo systemctl restart wpa_supplicant
2. 手动设置静态 IP
方案 A:使用 ip
命令临时生效
sudo ip addr add <静态IP>/<子网掩码位数> dev <网卡名>
sudo ip route add default via <网关IP> dev <网卡名>
# 例如:
sudo ip addr add 192.168.1.100/24 dev wlan0
sudo ip route add default via 192.168.1.1 dev wlan0
方案 B:修改配置文件永久生效
Debian/Ubuntu (Netplan)
编辑/etc/netplan/01-netcfg.yaml
:network: version: 2 renderer: networkd ethernets: wlan0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] # WiFi需额外指定wpa_supplicant配置路径(可选) wifis: wlan0: access-points: "你的WiFi名称": password: "WiFi密码" dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1. nameservers: addresses: [8..8..8, .]
应用配置:
sudo netplan apply
CentOS/RHEL
编辑/etc/sysconfig/network-scripts/ifcfg-wlan0
:DEVICE=wlan0 BOOTPROTO=none ONBOOT=yes IPADDR=192...100 NETMASK=255...0 GATEWAY=.168.. DNS1=.8.. DNS2=.4..
方法 :通过 NetworkManager (适合桌面环境)
如果系统使用 NetworkManager,可以直接用图形界面或命令行设置静态 IP:
nmcli connection modify "你的WiFi连接名" ipv4.method manual ipv.addresses "/24" ipv.gateway "" ipv.dns ".8.., .4."
nmcli connection up "你的WiFi连接名"
验证配置
bash ifconfig wlan #检查IP是否生效 ping -c google.com #测试网络连通性
###注意事项:
-确保静态IP未被DHCP服务器占用,避免冲突。
-部分嵌入式设备可能需要额外的步骤(如修改 /etc/network/interfaces)。
内容由零声教学AI助手提供,问题来源于学员提问