当前位置: 首页 > java >正文

NetworkManager配置热点

一、配置NetworkManager,将下面配置丢到/etc/NetworkManger/system-connections/目录内命名hotspot.nmconnection即可:

[connection]
id=hotspot
uuid=93d709e2-f59b-41e4-b146-f81918508e3e
type=wifi
interface-name=wlan0
permissions=
timestamp=1741851917[wifi]
band=bg
channel=11
mac-address-blacklist=
mode=ap
seen-bssids=00:AD:A7:00:6D:6F;#改成自己网卡的MAC地址
ssid=box-wifi[wifi-security]
group=ccmp;tkip;
key-mgmt=wpa-psk
pairwise=ccmp;tkip;
proto=wpa;#这里不能配错,否则可能导致iphone连不上
psk=fe123456[ipv4]
address1=192.0.1.254/24
dns-search=
method=shared[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

注意:NetworkManager配置热点时需要wpa_supplicant支持的,但不需要单独配置wpa_supplicant。上面文件权限是0600,权限配置错误会导致NetworkManager不能正确读取配置文件。

二、配置DHCP服务,我这里用dnsmasq,配置如下:

interface=wlan0
bind-dynamic
domain-needed
bogus-priv
dhcp-range=192.0.1.100,192.0.1.200,255.255.255.0,12h

三、多网卡配置上网优先级,将 下面配置丢到/etc/NetworkManger/dispatcher.d/目录命名99-metric.sh即可:

#!/bin/bashIF=$1
STATUS=$2
METRIC_PRI=(ppp0 usb0 eth1 eth0 wlan0)
#METRIC_PRI定义网口优先级,不要修改该文件
#自定义优先级文件丢到/etc/NetworkManager/dispatcher.d/metric.d/
if [ -d ./metric.d/ ] && [ ! -z $(ls ./metric.d/) ];thensource ./metric.d/*
fiLOG_FILE=/home/linaro/net.log
#if [ ! -f $LOG_FILE ];then
#    touch $LOG_FILE
#fi
#echo "[`date`] IF=$IF STATUS=$STATUS DHCP4_ROUTERS=$DHCP4_ROUTERS IP4_GATEWAY=$IP4_GATEWAY IP4_ADDRESS_0=$IP4_ADDRESS_0 IP4_ROUTE_0=$IP4_ROUTE_0 IP4_NAMESERVERS=$IP4_NAMESERVERS" >> $LOG_FILEfunction get_route_metric()
{DEV_IF=$1LEN=${#METRIC_PRI[@]}for (( i=0; i<$LEN; i++ )); doif [ "${METRIC_PRI[$i]}" = "$DEV_IF" ]; thenreturn $(expr \( $i + 1 \) \* 10)fidonereturn 150
}if [ "$IF" = "eth0" ]
thencase "$STATUS" inup | dhcp4-change)ip route del default dev $IFif [ ! -z $DHCP4_ROUTERS ];thenget_route_metric $IFip route add default via $DHCP4_ROUTERS dev $IF metric $?elif [ "$IP4_GATEWAY" != "0.0.0.0" ];thenget_route_metric $IFip route add default via $IP4_GATEWAY dev $IF metric $?fi;;*);;esacexit 0
fiif [ "$IF" = "eth1" ]
thencase "$STATUS" inup | dhcp4-change)ip route del default dev $IFif [ ! -z $DHCP4_ROUTERS ];thenget_route_metric $IFip route add default via $DHCP4_ROUTERS dev $IF metric $?elif [ "$IP4_GATEWAY" != "0.0.0.0" ];thenget_route_metric $IFip route add default via $IP4_GATEWAY dev $IF metric $?fi;;*);;esacexit 0 
fiif [ "$IF" = "ppp0" ]
thencase "$STATUS" inup | dhcp4-change)ip route del default dev $IFif [ ! -z $DHCP4_ROUTERS ];thenget_route_metric $IFip route add default via $DHCP4_ROUTERS dev $IF metric $?elif [ "$IP4_GATEWAY" != "0.0.0.0" ];thenget_route_metric $IFip route add default via $IP4_GATEWAY dev $IF metric $?fi;;*);;esacexit 0 
fiif [ "$IF" = "usb0" ]
thencase "$STATUS" inup | dhcp4-change)ip route del default dev $IFif [ ! -z $DHCP4_ROUTERS ];thenget_route_metric $IFip route add default via $DHCP4_ROUTERS dev $IF metric $?elif [ "$IP4_GATEWAY" != "0.0.0.0" ];thenget_route_metric $IFip route add default via $IP4_GATEWAY dev $IF metric $?fi;;*);;esacexit 0 
fiif [ "$IF" = "wl*" ]
thencase "$STATUS" inup | dhcp4-change)ip route del default dev $IFif [ ! -z $DHCP4_ROUTERS ];thenget_route_metric $IFip route add default via $DHCP4_ROUTERS dev $IF metric $?elif [ "$IP4_GATEWAY" != "0.0.0.0" ];thenget_route_metric $IFip route add default via $IP4_GATEWAY dev $IF metric $?fi;;*);;esacexit 0 
fi

注意:上面文件权限0755,权限配置错误会导致NetworkManager不能正确读取脚本文件。

四、调试可以先基于wpa_supplicant,下面是配置文件:

ctrl_interface=/run/wpa_supplicant
ap_scan=2network={         ssid="box-hotspot"mode=2frequency=2412proto=WPApairwise=CCMP TKIPgroup=CCMP TKIPkey_mgmt=WPA-PSKpsk="fe123456"priority=2
}

以上所有配置都是基于传统网口命名规则,如较新系统可能不适用,需要根据需求调整!!!

http://www.xdnf.cn/news/17705.html

相关文章:

  • 6深度学习Pytorch-神经网络--过拟合欠拟合问题解决(Dropout、正则化、早停法、数据增强)、批量标准化
  • Qt树形控件QTreeWidget详解:构建可编辑的多级课程结构
  • 牛客疑难题(6)
  • 需求沟通会议如何组织
  • 呼吸道病原体检测需求激增,呼吸道快检试纸条诊断试剂生产厂家推荐,默克全链解决方案助IVD企业把握百亿风口
  • Java调用Vue前端页面生成PDF文件
  • JMeter并发测试与多进程测试
  • 开疆智能Ethernet转ModbusTCP网关连接发那科机器人与三菱PLC配置案例
  • Jenkins 实战指南-项目自动构建部署全流程通关
  • 快速了解自然语言处理
  • RIOT、RT-Thread 和 FreeRTOS 是三种主流的实时操作系统
  • 【debug 解决 记录】stm32 debug模式的时候可以运行,但是烧录没法执行
  • 鸿蒙下载图片保存到相册,截取某个组件保存到相册
  • 海康视觉相机驱动软件参数配置
  • 【C++】哈希
  • Unity:GUI笔记(一)——文本、按钮、多选框和单选框、输入框和拖动条、图片绘制和框绘制
  • 电商双 11 美妆数据分析:从数据清洗到市场洞察
  • Linux系统中mount指令的作用与必要性
  • 简单的双向循环链表实现与使用指南
  • Java数据库编程之【JDBC数据库例程】【自动生成报表】【六】
  • Gradient Descent for Logistic Regression|逻辑回归梯度下降
  • Qwen-OCR:开源OCR技术的演进与全面分析
  • 【数据结构】——顺序表链表(超详细解析!!!)
  • Flink运行时的实现细节
  • COAT: 压缩优化器状态和激活以实现内存高效的FP8训练
  • apache+虚拟主机
  • @(AJAX)
  • 使用Spring Boot对接欧州OCPP1.6充电桩:解决WebSocket连接自动断开问题
  • 日志管理--g3log
  • 前端项目一键换肤