创建Ad-hoc网络,通过nmcli connection控制开关
sudo nmcli dev wifi hotspot ifname wlp3s0 ssid lunarbot.800 password 12345678
已经创建了一个热点,它的默认名字为Hotspot。它可以通过nmcli connection show显示出来,
打开热点通过nmcli启动
nmcli connection up Hotspot
关闭热点采用
nmcli connection down Hotspot
系统启动时通过systemctl自动打开热点
需要创建服务项
/etc/systemd/system/adhoc.service
然后使能并启动服务
sudo systemctl enable adhoc.service
sudo systemctl start adhoc.service
如果未能按预期启动,可运行查看service情况
sudo journalctl -u adhoc.service
根据Ubuntu系统启动后的联网状态来自动启动Ad-hoc网络
需要创建一个脚本为adhoc.service所调用
启动热点脚本的编写方式可以保证没网时才开自己的热点:
cd ~
sudo gedit start_adhoc.sh
更改之后赋予权限
sudo chmod +x start_adhoc.sh
附件
start_adhoc.sh
#!/bin/bash
# Function to check internet connectivity
check_internet() {
wget -q --spider http://www.bing.com
if [ $? -eq 0 ]; then
return 0 # Internet connection is available
else
return 1 # No internet connection
fi
}
# Check internet connectivity
check_internet
# If no internet connection, start Ad-hoc network
if [ $? -eq 1 ]; then
cd "~/Desktop/lunarbot_control/camera streaming" && gnome-terminal
# Create Ad-hoc Wi-Fi hotspot
#sudo iw dev wlan0 interface add wlan0 type adhoc
#sudo ip link set wlan0 up
#sudo iw dev wlan0 ibss join lunarbot.800 6
#sudo ip addr add 10.42.0.1/255.255.255.0 dev wlan0
# Create Ad-hoc Wi-Fi 热点
# sudo nmcli dev wifi hotspot ifname wlp3s0 ssid lunarbot.800 password 12345678
# 通过nmcli connection控制开关
sudo nmcli connection up Hotspot
fi
adhoc.service
[Unit]
Description=根据Ubuntu系统启动后的联网状态来自动启动Ad-hoc网络.Start Ad-hoc Wi-Fi Hotspot based on network connectivity
After=network.target
[Service]
Type=simple
ExecStart=/home/art/start_adhoc.sh
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
文章评论