zoukankan      html  css  js  c++  java
  • wifi_uplink脚本分析

    ~ >: vim apps/tools/wifi_uplink 
    #!/bin/sh
    # Copyright (C) 2012 GuoWenxue <guowenxue@gmail.com QQ:281143292>
    # This Shell scripts used to NAT by iptables, to make wlan0 as the downlink device
    # and set the uplink device as eth0/ppp0, it will be called by crond

    DOWNLINK_DEV="wlan0"

    #可以改为ppp0

    DEF_UPLINK_DEV="eth0"

    #使能profile和ifcfg-wlan0文件
    source /etc/profile
    source $network_cfg_dir/ifcfg-$DOWNLINK_DEV

    #在ifcfg-wlan0文件中有设置是否使用AP模式,如果没有就会在这里退出。
    if [ $WORKMODE != AP ] ; then
       echo "$DOWNLINK_DEV doesn't work as AP mode, exit now..."
       exit
    fi

    #求出子网的网络地址,例如wlan0的子网的ip=192.168.2.1
    NETWORK=`/bin/ipcalc -n $IPADDR_AP $NETMASK_AP`
    DOWNLINK_SUBNET=${NETWORK##*=}


    #set -x

    #取得默认网关的网卡
    #Current defaulte gateway out-going interface
    cur_gateway_inf=`ip route show | grep default | sed -n '1p' | awk -F "dev" '{print $2}'`


    #Current Uplink interface
    cur_uplink_inf=`iptables -t nat -vnL POSTROUTING | grep $DOWNLINK_SUBNET | awk '{print $7}'`


    #Initialise NAT or not


    if [ ! -n "$cur_uplink_inf" ]; then
        iptables -A INPUT -i $DOWNLINK_DEV -j ACCEPT
        if [ -n "$cur_gateway_inf" ] ; then
            iptables -t nat -A POSTROUTING -s $DOWNLINK_SUBNET -o $cur_gateway_inf -j MASQUERADE
        fi
        exit
    fi


    if [ $cur_uplink_inf != $cur_gateway_inf ] ; then
       iptables -t nat -D POSTROUTING -s $DOWNLINK_SUBNET -o $cur_uplink_inf -j MASQUERADE
       iptables -t nat -A POSTROUTING -s $DOWNLINK_SUBNET -o $cur_gateway_inf -j MASQUERADE
    fi

  • 相关阅读:
    Bootstrap之Carousel问题
    IMG图片和文字同行显示
    divcss5布局
    使用PHP QR Code生成二维码
    mysql grant用户权限设置
    Linux下的压缩解压缩命令详解
    linux网站目录及Apache权限的设置
    lamp环境编译(apache2.4.7 php5.4.25 mysql 5.5.23)
    mysql开启远程访问
    lamp环境编译(实际通过)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3221610.html
Copyright © 2011-2022 走看看