随身wifi debian Wi-Fi断开自动连接其他配置 自动启动服务
随身wifi debian 树莓派 如果由于蹭楼下的网被拉黑后无法连接WiFi 跑的服务断开..
为了防止服务器失联,本博客将介绍如何通过使用systemd服务和自动连接脚本来实现这两个功能。
前提你的随身WiFi允许连接WiFi,如果你没连接过WiFi可以跟着我的步骤
连接ssh,先连上家里的WiFi,输入命令进入网络管理界面,设置静态内网,方便不用插电脑也可以管理随身WiFi和进入随身WiFi搭建的服务之类的
nmtui
遇到报错:
root@openstick:/# nmtui
TERM environment variable needs set.
输入命令
export TERM=xterm
然后再次尝试,出现ssh界面出现图形管理界面
- 使用方向键选择"编辑连接"并按回车。
- 移动到 网桥 点击 编辑
然后 移动到 wifi 删除掉
方向键选择删除
返回主菜单,方向键选中 启用连接
选择你要连接的WiFi 输入密码连接即可
- 确认成功连接:如果成功连接,你会在WiFi名称前面看到一个*表示连接成功。
第一部分:创建wifi连接配置
要在Debian中使用NetworkManager来创建自动连接到网络的脚本,你可以使用nmcli工具来实现。以下是一些步骤来创建这样的脚本:
打开终端,并使用nmcli创建一个新的Wi-Fi连接配置文件。运行以下命令,将Openwrt_2G和12345678替换为你的网络名称和密码:
nmcli connection add type wifi ifname wlan0 con-name Openwrt_2G ssid Openwrt_2G
nmcli connection modify Openwrt_2G wifi-sec.key-mgmt wpa-psk
nmcli connection modify Openwrt_2G wifi-sec.psk 12345678
这将创建一个名为Openwrt_2G的Wi-Fi连接配置文件,并配置它以连接到指定的网络。
现在,你可以使用以下命令连接到创建的Wi-Fi连接:
nmcli connection up Openwrt_2G
这将启动Wi-Fi连接并连接到Openwrt_2G网络。
现在,你已经创建了一个使用NetworkManager的自动连接脚本,它会在启动时自动连接到指定配置的Wi-Fi网络(热点)。
第二部分:自动启动服务(断开连接其他配置)
1. 创建自动连接脚本
首先,我们需要创建一个自动连接脚本,它将负责监测Wi-Fi连接状态并在需要时切换到其他配置。这个脚本可以根据实际需求编写,例如使用nmcli工具来连接不同的Wi-Fi网络。以下是一个简单的示例:
#!/bin/bash
while true; do
if ! nmcli -t -f GENERAL.STATE connection show --active | grep -q "activated"; then
if nmcli connection up wifi1; then
echo "切换到wifi1成功"
elif nmcli connection up wifi2; then
echo "切换到wifi2成功"
else
echo "没有可用的Wi-Fi配置"
fi
fi
sleep 60
done
2. 创建systemd服务单元文件
为了让自动连接脚本在系统启动时自动运行,我们需要创建一个systemd服务单元文件。服务单元文件包含了脚本的路径以及其他相关配置。以下是一个示例服务单元文件
sudo vim /etc/systemd/system/auto_wifi_connect.service
i 插入内容 粘贴内容
auto_wifi_connect.service:
[Unit]
Description=Auto WiFi Connection Service
After=network.target
[Service]
ExecStart=/path/to/your/auto_connect_script.sh
Restart=always
User=your_username
[Install]
WantedBy=multi-user.target
esc :wq保存并退出
请将上述示例中的/path/to/your/auto_connect_script.sh替换为你的自动连接脚本的实际路径,将your_username替换为运行脚本的用户名(root)。
3. 启用和启动服务
一旦创建了服务单元文件,我们需要通知systemd重新加载配置文件以识别新的服务。执行以下命令:
sudo systemctl daemon-reload
接下来,启用并启动你的自动连接服务:
sudo systemctl enable auto_wifi_connect.service
sudo systemctl start auto_wifi_connect.service
你的自动连接服务现在已经设置并在系统启动时自动运行。它将监测Wi-Fi连接状态,并在需要时切换到其他配置。
第三部分:自动连接其他Wi-Fi配置
在自动连接脚本中,我们可以使用nmcli或其他网络管理工具来监测当前的Wi-Fi连接状态并切换到其他Wi-Fi配置。这样,如果当前的Wi-Fi连接断开,脚本将自动尝试连接到其他配置。这提高了系统的稳定性和可用性,确保了持续的网络连接。
配置管理
要查看已经创建的服务,你可以使用以下命令:
systemctl list-unit-files --type=service
这个命令会列出所有已安装的systemd服务单元文件,包括已启用和已禁用的服务。在输出中,你将看到每个服务的状态(enabled 或 disabled)以及服务单元文件的名称。
如果你只想查看已启用的服务,可以使用以下命令:
systemctl list-unit-files --type=service | grep enabled
这将列出所有已启用的服务。
如果你想查看特定服务的详细信息,可以使用以下命令,将service_name替换为你要查看的服务的名称:
systemctl status service_name
这将显示有关该服务的详细信息,包括其状态、活动状态和日志。
总结一下,通过创建一个systemd服务和一个自动连接脚本,你可以实现自动启动服务和Wi-Fi断开时自动连接其他配置的功能。这对于需要持续在线的系统非常有用,例如嵌入式设备或服务器。
本文系作者 @linzimo 原创发布在林子墨站点。未经许可,禁止转载。
暂无评论数据