因为我做app开发,本机会作为api服务器使用,如果ip发生变化了就要修改一次配置文件,非常的麻烦。
而我是通过命令行连接wifi的,执行命令如下:
dart
wpa_supplicant -c lsnet.conf -i wlan0 &
那么这种方式是否可以设置固定ip呢?
排除可能存在的冲突
dart
# 停止并禁用可能冲突的服务
sudo systemctl disable --now dhcpcd
sudo systemctl disable --now NetworkManager
设置固定ip
这是最优雅的方案:让 wpa_supplicant 负责"连上 Wi-Fi",让 systemd-networkd 负责"给这个连接分配 192.168.31.188"。
创建配置文件:
dart
sudo nvim /etc/systemd/network/25-wireless.network
写入静态 IP 配置:
dart
[Match]
Name=wlan0
[Network]
Address=192.168.31.188/24
Gateway=192.168.31.1
DNS=192.168.31.1
DNS=114.114.114.114
这时的ip网段请根据自己的路由器的网段设置正确。
启动服务:
dart
sudo systemctl enable --now systemd-networkd
这样,当你运行 wpa_supplicant 命令连接成功的一瞬间,系统会自动检测到链路已 Up,并把 .network 文件里的静态 IP 压进去。