随身wifi debian 树莓派 如果由于蹭楼下的网被拉黑后无法连接WiFi 跑的服务断开..

为了防止服务器失联,本博客将介绍如何通过使用systemd服务和自动连接脚本来实现这两个功能。

前提你的随身WiFi允许连接WiFi,如果你没连接过WiFi可以跟着我的步骤

连接ssh,先连上家里的WiFi,输入命令进入网络管理界面,设置静态内网,方便不用插电脑也可以管理随身WiFi和进入随身WiFi搭建的服务之类的

nmtui

遇到报错:

root@openstick:/# nmtui
TERM environment variable needs set.

输入命令

export TERM=xterm

然后再次尝试,出现ssh界面出现图形管理界面

tmpEA86.png

  • 使用方向键选择"编辑连接"并按回车。

tmpAE8.png

  • 移动到 网桥 点击 编辑

tmpA0F0.png
然后 移动到 wifi 删除掉
tmp8DED.png
方向键选择删除
tmp958.png

返回主菜单,方向键选中 启用连接
tmp4FA4.png

选择你要连接的WiFi 输入密码连接即可
tmpBF04.png

  • 确认成功连接:如果成功连接,你会在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)以及服务单元文件的名称。
tmp1D51.png
如果你只想查看已启用的服务,可以使用以下命令:

systemctl list-unit-files --type=service | grep enabled

这将列出所有已启用的服务。

如果你想查看特定服务的详细信息,可以使用以下命令,将service_name替换为你要查看的服务的名称:

systemctl status service_name

这将显示有关该服务的详细信息,包括其状态、活动状态和日志。

总结一下,通过创建一个systemd服务和一个自动连接脚本,你可以实现自动启动服务和Wi-Fi断开时自动连接其他配置的功能。这对于需要持续在线的系统非常有用,例如嵌入式设备或服务器。

分类: 随身wifi探索 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录