我目前正在开发一个带有Raspberry Pi的便携式无头项目,我已经在上面安装了Arch Linux,并且目前正在使用systemd无线连接到我的家庭路由器。我希望它能够为每个SSID使用不同的静态it来自动连接到优先级优先的一对SSID,用于以下用例:
当我在家以外使用它时,我需要它使用静态IP自动连接到我的Android设备的无线热点(这样我就可以从我的手机轻松地将SSH或VNC连接到它)。
当我在家的时候,我还需要能够从我的家庭局域网进入SSH来执行管理,再次使用静态IP来方便SSH的访问。
然而,当我在家的时候,我也需要能够将它连接到我的手机上进行测试,并根据我的Android热点的存在与否,让它在SSID之间自动切换。
更复杂的是,我的家庭路由器使用与我的Android手机不同的IP范围,因此静态IP需要在两个连接上都不同。
理想情况下,我需要Pi按以下方式工作:
这意味着我可以在家里用手机测试Pi,只需打开手机的热点,我就可以通过关闭热点来管理它。
有人知道我是怎么做到的吗?
发布于 2019-10-18 20:16:18
最后,利用nmcli,研究了如何使用来实现它。建立两个概要文件如下:
nmcli con add con-name "[Connection Name]" ifname wlan0 type wifi ssid "[SSID]"
ip4 [Static IP Address]/24 gw4 [Default Gateway]
nmcli con mod "[Connection Name]" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod "[Connection Name]" wifi-sec.key-mgmt wpa-psk
nmcli con mod "[Connection Name]" wifi-sec.psk [Passkey]
nmcli con mod "[Connection Name]" connection.autoconnect-priority 0确保我的手机wifi的连接比我的家庭wifi有更高的自动连接优先级。然后把这两个连接连接起来
nmcli con up "[Connection Name]"然后,网络管理器根据优先级自动决定使用哪个,然后根据可用性。为了从家里的wifi切换到手机wifi,我打开我的手机热点并重新启动NetworkManager服务;为了再次切换,我关闭了我的手机热点。
https://unix.stackexchange.com/questions/547267
复制相似问题