Openwrt无线管理工具/命令
发布时间:February 9, 2015 // 分类:OpenWrt // No Comments
查看连接Openwrt路由的无线客户端:
iwinfo wlan0 assoclist
iw dev wlan0 station dump
查看分配的DHCP客户端IP:
cat /tmp/dhcp.leases
扫描无线路由器/AP:
iwinfo wlan0 scan
查看Openwrt路由无线信息:
iwinfo wlan0 info
wlan0 ESSID: "OpenWrt"
Access Point: 00:1F:A3:65:55:8E
Mode: Master Channel: 5 (2.432 GHz)
Tx-Power: 20 dBm Link Quality: 30/70
Signal: -80 dBm Noise: unknown
Bit Rate: 32.5 MBit/s
Encryption: WPA2 PSK (CCMP)
Type: nl80211 HW Mode(s): 802.11bg
Hardware: unknown [Generic MAC80211]
TX power offset: unknown
Frequency offset: unknown
Supports VAPs: no PHY name: phy0
重启无线:
wifi down && sleep 5 && wifi
一个bash脚本,输出当前无线客户端IP/MAC/名称/速率:
#!/bin/bash
echo -e "# IP address\tname\tMAC address\ttx bit\trx bit"
for interface in `iw dev | grep Interface | cut -f 2 -s -d" "`
do
maclist=(`iw dev $interface station dump | grep Station | cut -f 2 -s -d" "`)
txlist=(`iw dev wlan0 station dump|grep 'tx bitrate'|awk '{print $3$4}'`)
rxlist=(`iw dev wlan0 station dump|grep 'rx bitrate'|awk '{print $3$4}'`)
len=${#maclist[@]}
for ((i=0;i<$len;i++))
do
mac=${maclist[$i]}
tx=${txlist[$i]}
rx=${rxlist[$i]}
ip="UNKN"
host=""
ip=`cat /tmp/dhcp.leases | cut -f 2,3,4 -s -d" " | grep $mac | cut -f 2 -s -d" "`
host=`cat /tmp/dhcp.leases | cut -f 2,3,4 -s -d" " | grep $mac | cut -f 3 -s -d" "`
echo -e "$ip\t$host\t$mac\t$tx\t$rx"|awk '{printf "%-15s %-25s %-15s %-10s %-10s\n",$1,$2,$3,$4,$5}'
done
done
http://wiki.openwrt.org/doc/faq/faq.wireless
http://wiki.openwrt.org/doc/howto/wireless.utilities
编译Openwrt固件安装软件内核版本不一致问题解决
发布时间:February 5, 2015 // 分类:OpenWrt // No Comments
最近将使用近3年Openwrt Backfire 10.03固件升级到了最新版本Barrier Breaker 14.07,编译后使用opkg安装官方源提供的软件出现了内核版本不一致的问题:
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for openconnect:
* kernel (= 3.10.49-1-3051dee8f07064b727e9d57fbfeb05ec) *
* opkg_install_cmd: Cannot install package openconnect.
安装的openwrt kernel版本,内核大版本一样,就后面md5不一样:
opkg info kernel
Package: kernel
Version: 3.10.49-1-eac88df3cb49b94d68ac3bc78be57f95
Depends: libc
Status: install hold installed
Architecture: x86
Installed-Time: 1423195057
看看md5版本号是怎么生成的:
grep vermagic include/kernel-defaults.mk
$(SH_FUNC) grep '=[ym]' $(LINUX_DIR)/.config | LC_ALL=C sort | md5s > $(LINUX_DIR)/.vermagic
在编译前指定内核版本号:
#查看Openwrt官方源内核版本:
wget http://downloads.openwrt.org/barrier_breaker/14.07/x86/generic/packages/base/Packages.gz
zgrep -m 1 "Depends: kernel (=.*)$" Packages.gz | sed -e 's/.*-\(.*\))/\1/' > .vermagic
#取而代之
sed -i -e 's/^\(.\).*vermagic$/\1cp $(TOPDIR)\/.vermagic $(LINUX_DIR)\/.vermagic/' include/kernel-defaults.mk
编译后指定内核版本:
sed -i 's/eac88df3cb49b94d68ac3bc78be57f95/3051dee8f07064b727e9d57fbfeb05ec/' /usr/lib/opkg/status
以上解决方法和opkg --force-depends无区别,会造成不稳定因素,最好的解决方法是使用官方提供的固件,如果非要自己编译固件的话使用官方软件相同版本的源码编译,如Barrier Breaker 14.07 r42625:
svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker -r 42625
就算使用同一版本源码编译内核md5版本号也不一致,除非使用官方提供的.config,可以使用前面的两种方法修改内核版本号。
Openwrt版本历史及版本号:
http://en.wikipedia.org/wiki/OpenWrt
http://wiki.openwrt.org/about/history#barrier_breaker
VMware测试编译的OpenWRT固件img转vmdk
发布时间:February 5, 2015 // 分类:OpenWrt // No Comments
路由刷机有风险,编译后可先使用x86版本的固件使用vmware测试,平台选择x86,目标image选择vmdk。
vmware新建虚拟机使用已存在的磁盘,硬盘一定要选择IDE格式,不要选择SCSI。
OpenWRT官方提供的x86固件自Barrier Breaker 14.07版本没有提供vmdk格式,转换方法:
yum install qemu-img
apt install qemu-utils
wget http://downloads.openwrt.org/barrier_breaker/14.07/x86/generic/openwrt-x86-generic-combined-ext4.img.gz
gunzip openwrt-x86-generic-combined-ext4.img.gz
qemu-img convert -f raw openwrt-x86-generic-combined-ext4.img -O vmdk openwrt-x86-generic-combined-ext4.vmdk
高性能libcurl配合epoll的curl_multi_socket_action方法使用
发布时间:February 3, 2015 // 分类: // No Comments
libcurl对大量请求连接提供了管理socket的方法,用户可使用select/poll/epoll事件管理器监控socket事件,可读写时通知libcurl读写数据,libcurl读写完成后再通知用户程序改变监听socket状态。
两个重要的设置:
curl_multi_setopt(g.multi, CURLMOPT_SOCKETFUNCTION, sock_cb);
curl_multi_setopt(multi, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
1.当使用curl_multi_add_handle(g->multi, conn->easy)添加请求时会回调multi_timer_cb,然后调用curl_multi_socket_action(g->multi, CURL_SOCKET_TIMEOUT, 0, &g->still_running)初始化请求并得到一个socket(fd)。
2.调用sock_cb回调函数,传入新建的sockfd,根据传入的what状态添加到相应的事件管理器,如封装epoll的libev或libevent。
3.当事件管理器发现socket状态改变时通过curl_multi_socket_action(g->multi, fd, action, &g->still_running)通知libcurl读写数据,然后再调用sock_cb通知事件管理器,如此反复。
libcurl官网提供的基于libev和libevent事件管理示例:
http://curl.haxx.se/libcurl/c/hiperfifo.html
http://curl.haxx.se/libcurl/c/evhiperfifo.html
分类
- Apache (13)
- Nginx (45)
- PHP (86)
- IIS (8)
- Mail (17)
- DNS (16)
- Cacti (14)
- Squid (5)
- Nagios (4)
- Puppet (7)
- CentOS (13)
- Iptables (23)
- RADIUS (3)
- OpenWrt (41)
- DD-WRT (1)
- VMware (9)
- 网站程序 (2)
- 备份存储 (11)
- 常用软件 (20)
- 日记分析 (10)
- Linux基础 (18)
- 欧诺代理 (0)
- Linux服务 (18)
- 系统监控 (4)
- 流量监控 (7)
- 虚拟化 (28)
- 伪静态 (2)
- LVM (3)
- Shell (18)
- 高可用 (2)
- 数据库 (16)
- FreeBSD (3)
- 网络安全 (25)
- Windows (35)
- 网络工具 (22)
- 控制面板 (3)
- 系统调优 (10)
- Cisco (3)
- VPN (6)
- ROS (20)
- Vim (14)
- KMS (4)
- PXE (2)
- Mac (1)
- Git (1)
- PE (1)
- LNS (2)
- Xshell (7)
- Firefox (13)
- Cygwin (4)
- OpenSSL (9)
- Sandboxie (3)
- StrokesPlus (1)
- AutoHotKey (4)
- Total Commander (3)
- WordPress (3)
- iMacros (6)
- Typecho (2)
- Ollydbg (1)
- Photoshop (1)
- 正则 (3)
- Debian (3)
- Python (8)
- NoSQL (6)
- 消息队列 (4)
- JS (7)
- Tmux (3)
- GO (7)
- HHVM (2)
- 算法 (1)
- Docker (2)
- PT (15)
- N1 (16)
- K2P (6)
- LUKS (4)
最新文章
- debian12下initramfs-tools配置ip子网掩码255.255.255.255/32失败解决
- iPhone查看屏幕供应商
- 光猫拨号ImmortalWrt/OpenWRT路由获取ipv6遇到的问题
- php-fpm错误error_log日志配置
- debian-12/bookworm安装mariadb10.3和mysql5.6
- smokeping主从配置及遇到的问题
- openwrt/linux使用tcpdump/nflog ulogd记录iptables日志
- tmux bash shell自动保存history
- ImmortalWrt/OpenWRT为guest wifi网络配置ipv6 nat6
- PVE更新upgrade遇到The following packages have been kept back
最近回复
- opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
- liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
- 海运: 不好意思,没有。
- zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
- 海运: 恩山有很多。
- swsend: 大佬可以分享一下固件吗,谢谢。
- Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
- 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
- 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
- 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
归档
- February 2025
- August 2024
- May 2024
- February 2024
- January 2024
- December 2023
- November 2023
- October 2023
- September 2023
- August 2023
- May 2023
- April 2023
- February 2023
- January 2023
- December 2022
- September 2022
- July 2022
- April 2022
- March 2022
- February 2022
- January 2022
- December 2021
- November 2021
- April 2021
- March 2021
- February 2021
- January 2021
- December 2020
- November 2020
- October 2020
- September 2020
- July 2020
- May 2020
- April 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- July 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- August 2018
- July 2018
- June 2018
- April 2018
- March 2018
- February 2018
- January 2018
- December 2017
- October 2017
- September 2017
- August 2017
- July 2017
- April 2017
- March 2017
- February 2017
- January 2017
- December 2016
- November 2016
- July 2016
- June 2016
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- October 2011
- September 2011
- August 2011
- July 2011