yjiang's cake

linux下的交换分区--swap

交换分区的作用

(Swap)交换分区在系统的物理内存不够用的时候,会把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用. 但需要注意:虚拟内存并不是等到物理内存用尽了才使用的,这个由

cat /proc/sys/vm/swappiness 60 

这个参数来决定的,(0~100)数值越大使用SWAP越积极.

交换分区性能

既然是把硬盘作为内存来使用,IO性能上肯定没法跟物理内存相比,内存跟硬盘读写速度的差距即交换分区跟物理内存的差距.

合理分配交换分区

需要注意的三点

  • SWAP并不是一味的越大大越好,系统中的物理内存越大,对于内存的负荷可能也越大;因此单个SWAP划分不宜过大,这样当一个SWAP被占用时不会因为整个SWAP过大而影响整个系统内存的负荷.
  • SWAP单个分区大小受系统内核影响,32位系统的内核不支持单个超过2G,64位则不超过8G.
  • 要及时关注SWAP的使用量,使Swap负载保持在30%以下,这样才能保证系统的良好性能.

下面是一个推荐的分配值公式

当物理内存小于2G:  SWAP = RAM x 2
当物理内存小于3G:   SWAP = (RAM - 2) + (2 x 2)
当物理内存大于32G:  SWAP <= RAM

交换分区相关的几个命令

mkswap  {devices}  #创建交换分区
swapon -s          #查看当前交换分区使用量
swapon {devices}   #激活交换分区
swapoff {devices}  #关闭交换分区

具体创建交换分区的步骤(以本博客128M内存为例,创建256M的SWAP)

cd /var/                                                  #进入一个目录:
dd if=/dev/zero of=swapfile bs=1024 count=262144          #获取256M的文件块
mkswap swapfile                                           #创建swap文件:
swapon swapfile                                           # 激活swap文件
swapon -s                                                 #查看一下swap是否正确
echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab  #写入开机启动

Cubieboard下使用reaver检查周围WIFI安全性

硬件设备(系统lubuntu)

  • cubieboard
  • w722n(其他无线网卡也可以)

软件设备

  • aircrack-ng(扫描周边wifi)
  • reaver (检查是否开启wps功能)
  • tmux (后台运行reaver)

安装

首先给网卡安装驱动,如果你用的也是w722n可以参照这里,linux下驱动无线网卡TP-link w722n(ar9271). 我这里安装了两个网卡,通过命令iwconfig查看,用于破解的w722n是wlan1.

8803D04A-898F-43F6-BF91-D5FFF1F3631F

网卡驱动以后,打开/etc/apt/sources.list,添加下面内容:

deb http://ftp.jp.debian.org/debian sid main
deb-src http://ftp.jp.debian.org/debian sid main

然后更新下apt: sudo apt-get update

安装所需软件: sudo apt-get install aircrack-ng reaver tmux

一切准备就绪后,开始扫描周边wifi信号

#wlan1开启监听模式
sudo airmon-ng start wlan1 
#扫描周边信号,显示相关信息
sudo airodump-ng mon0

下面是扫描到的信号:8BC4F051-18EE-4DF4-9AA8-A13D56EFD2BD

#PWR列为信号强度,选择一个信号强度好的有利于迅速检查是否开启了WPS功能,可以迅速解出PIN码.
#Data列为数据传输列,如果迅速增长,表示此wifi正在被使用.
#MBAP支持的最高速率,11为802.11b, 22为802.11b+, 54为802.11g; .表示支持短序文; e代表路由器开启了QoS.(带有.和e的信号,解出PIN的几率更高一些)

开始检查信号(我就选WTY吧,BIU跟haohao是自己的)

解PIN的速度取决于网络信号的状态,选择一个信号较好的网络能有效的减少解PIN所需时间.一般需要4-10个小时,也可能会更久.

#创建一个名为yjiang的tmux session,可以使用ctrl + D放入后台运行,下次进入此session使用命令`tmux attach -t yjiang`
tmux new -s yjiang
#开始解码,如果信号不好不要加'-S',-c为指定channel,
sudo reaver -i mon0 -b {MAC} -a -S -vv -c {channel}
#我这里实际执行命令为
sudo reaver -i mon0 -b 8C:21:0A:88:31:9C -vv -c 1

剩下的就是漫长的等待了...

进度到达100%就算完成了.

F61AD720-1D7B-43C9-B923-80A4E3B623B2

故障排除

报错故障

  1. 出现failed to associate with XX:XX:XX:XX:XX:XX ,说明目标路由器不支持WPS.
  2. 出现failed to re-initialize interface mon0,这有可能是你的网卡掉线造成的,把网卡重新插上并从头执行所有指令.
  3. 还有可能其他错误,我也不清楚要怎么搞.

卡死故障

遇到卡死,如果进度不是在90%或者99%,首先尝试Ctrl+c并重新输入刚才的命令,如果程序继续运行,那么故障排除;如果没有,我也不知道怎么办。

如果卡在90%的位置,说明前四位已解出,使用下面的命令

sudo reaver -i mon0 -b MAC -p 【前四位】 -其他参数

如果卡死在99.99%,查看/etc/reaver/【目标MAC】.wpc文件,找出剩余的那个PIN(8位的完整pin),使用

sudo reaver -i mon0 -b MAC -p【8位数】

如果一切正常可以直接显示结果。

如果没有显示结果仍然卡死,那么可能是漏掉了正确的PIN码,使用

sudo reaver -i mon0 -b MAC -p 【前四位】 -其他参数

重跑后三位;如果仍然卡死,问题可能出现在前四位,只能删掉存档重新运行reaver,有必要的话设置参数把速度降下来。

WPS/PIN锁死

破密正常运行中,信号质量也很好的情况下,突然出现出现同码循环和大量timeout,可能是如下原因造成的(排除关机状态)。
reaver只支持11N的PIN破密,11n先验证前4位码,11g也有PIN功能,是全码验证。
现在多数AP的无线模式是混和11bgn,当有11g设备接入时,AP自动从11N降至11g,此时,reaver会出现同码循环重复timeout! 甚至会出现WARNING: Failed to associate with。实证中,在排除同频干扰因素后,通过扫描无线网络,发现路由器,确实从54e.模式降为54.模式了。有人把此种现象称为临时性WPS、PIN功能自锁。

解决办法:
等待11g设备退出无线接入,断电重启。
使用mdk3向路由器发起攻击使其死机,迫使路由器主人重启。
终极大招:找到目标所在的人家,拉电闸再推上去。

linux下驱动无线网卡TP-link w722n(ar9271)

vi /etc/apt/sources.list
deb http://http.debian.net/debian/ wheezy main contrib non-free
apt-get update && apt-get install firmware-atheros####

vps使用net-speeder进行连接加速

项目地址

https://code.google.com/p/net-speeder/

作用与影响

作者说了:在高延迟不稳定链路上优化单线程下载速度;原理就是多次发包,所以弊端很明显,流量翻倍.
但是对于我等小水管,不痛不痒,一个月500G能用1/10就不错了.

安装及使用

#安装
apt-get install libnet1 libnet1-dev libpcap0.8 libpcap0.8-dev
wget http://net-speeder.googlecode.com/files/net_speeder-v0.1.tar.gz -O -|tar xz
cd net_speeder && sudo sh build.sh -DCOOKED
sudo cp ./net_speeder usr/local/bin/
#使用("ip"不是IP地址,指所有协议,也可以单独指定"TCP"等)
sh_speeder <网卡名> "ip"
#扔后台运行吧
nohup net_speeder venet0 "ip" > /dev/null 2>&1 &

注意事项

  • 编译的时候(执行sh ./build.sh时)一定要加参数 -DCOOKED ;不然会一直报 libnet_write_raw_ipv4(): -1 bytes written (Message too long)错误.

703n(openwrt)挂载U盘,并使用U盘启动(14.0x及15.0x版本 )

1. 适用于openwrt 14版本的设置方式

  • 由于703n刷完openwrt直邮400k可用空间,所以格式化的程序就不安装到703n上了,自己把U盘预先格式化为ext3格式.
  • 以自己U盘为例,分为两个区,一个7G作为系统分区,另外一个作为swap交换分区;
    因为在win下格式化,遇到个问题,只有一个分区能格式化为ext3,另一个只能是win下的格式;无所谓,先格一个,另外的交换分区稍后再说.

安装挂载需要的程序

opkg update && opkg install block-mount kmod-fs-ext4 kmod-usb-storage
#block-mount      挂载使用
#kmod-fs-ext4     ext3 ext4格式支持
#kmod-usb-storage 大容量存储设备支持
#block info查看挂载的设备
#block detect 查看挂载的配置

复制所有文件到U盘,重启下系统

mkdir -p /tmp/cproot 
mount / /tmp/cproot 
mount /dev/sda1 /mnt/ 
tar -C /tmp/cproot -cvf - . | tar -C /mnt/ -xf - 
sync 
umount /mnt 
umount /tmp/cproot

启用swap

mkswap /dev/sda2
swapon

修改 /etc/conf/fstab的mount项

config 'mount'
    option target /
    option device /dev/sda1
    option fstype ext3
    option options rw,sync
    option enabled 1
    option enabled_fsck 0
    option is_rootfs 1

config 'swap'
    option  device  '/dev/sda2'
    option  enabled '0'

知识扩展

关于更详细的交换分区 swap 的说明,可参照 linux下的交换分区–swap

2. 适用于openwrt 15版本的设置方式

  • 关于格式化存储卡及挂载缓存分区的方式没变,依旧可以成功
  • 在15.0x版本后extroot方式试了很多次都不成功,从日志看到总是 extroot:cannot found device,需要使用挂载 /overlay 的方式

安装挂载需要的程序

opkg update && opkg install block-mount kmod-fs-ext4 kmod-usb-storage

复制 overlay

mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt

创建fstab配置文件

block detect > /etc/config/fstab; \
   sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab; \
   sed -i s#/mnt/sda1#/overlay# /etc/config/fstab; \
   cat /etc/config/fstab;

关于overlay

openwrt的一种透明挂载技术, 它会将/rom挂载为/根文件,然后用/overlay覆盖根目录/,这样,当你对文件系统进行修改时,实际操作的其实是overlay,而rom是不变的.

参考引用

Copyright © 2016 yjiang's cake

返回顶部