zoukankan      html  css  js  c++  java
  • Linux下Wi-Fi配置工具2

    上回说到,linux下面的Wi-Fi配置工具,说是江湖多事,风起云涌。。。嗯,这回是真的要动手配置了。各种麻烦啊,想死的心都有了有木有啊。

    尝试用iwconfig

    话说上回说用iwconfig配置Wi-FI,这次一上手就从这里开始了。各种尝试啊。

    1)首先,要把网卡down掉

    ifdown wlan0

    1)获得各个能用的AP的参数

    iwlist wlan0 scan

    2)告诉网卡,ssid是多少,直接复制上面要用到的ssid

    iwconfig wlan0 essid ssid_of_my_ap

    3)告诉你的网卡,密码是多少,输入你的密码就好了

    iwconfig wlan0 key your_passwd
    
    #if the key is ascii
    iwconfig wlan0 key s:your_passd
    
    eg:
    iwconfig wlan0 key 1234_567

    4)然后,俺还尝试了

    iwconfig wlan0 ap xx:xx:xx:xx:xx
    #xx:xx:xx:xx:xx is the MAC of my ap

    5)这时候可以把网卡开起来了

    ifup wlan0

    6)什么?发现不工作?这就对了,iwconfig原生只支持WEP加密,该加密已经死翘很久了,现在多是wpa。。。那怎么办。那需要wpa_supplicant的帮助。而且,你能做到这一步的可能也不大,因为如果是wpa的密码的话,在第三步会一直报错的(wpa的密码比WEP的要长,一直在提示key unlegal之类的错误)

    好吧,放狗找了下,需要用wpa_supplicant来支援WPA的网络。

    尝试用wpa_supplicant

    因为我的系统上面已经有wpa_supplicant,所以,这里不考虑安装的问题。

    这里主要是修改它的配置文件/etc/wpa_supplicant/wpa_supplicant.conf

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    network={
    ssid="TP-LINK_8D0B8A"
    key_mgmt=WPA-PSK
    psk="12345678"
    }

    那,我以为是设置这里,然后ifdown,ifup就可以了。。。但是事实上它还是不工作。

    然后看到,说是要设置这里/etc/network/interfaces

    auto wlan0
    iface wlan0 inet dhcp
    wpa-ssid "secret-wiki-net"
    wpa-psk "verysecret-wpa-psk"

    然后,ifup,ifdown...貌似就可以了(这个方法是对的

    但是,事实上还是不行,俺dhcp老是不成功啊。。。然后手动再设ip,连ap都ping不到。

    这时候想试试直接打开wpa_supplicant,用了下下面的指令打开wpa_supplicant:

    sudo wpa_supplicant -d -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dwext &
    额,然后ifconfig查看,居然分配到IP了,ping了下8.8.8.8,bingo!通了!
    唔,这个是又迈出了一小步,待进一步了解。
     
    后记:
    正确的方法应该是在interfaces里面设置,是我更改interfaces的方式不对,上面提到的四句应该是放到一起的,放一起就好了。直接restart networking,Wi-Fi就能连上。
    不过,用wpa_supplicant的话, 打印出好多信息,这个应该是调试硬件的时候用处蛮大的。
    猜测下,他们应该是networking会去调用wpa_supplicant,然后wpa_supplicant会去调用iwconfig。。。反正最后用iwconfig查看的时候,显示网卡是和ssid是associated。
     
    有人讲,正确的wpa_supplicant应该是下面这个样子,这样的话甚至不用去该interfaces了是不是?
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
     
    network={
    ssid="__SSID__"
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk="__PASSWORD__"
    }

    待验证。

    另外还有个问题,插拔usb-WiFi的时候系统会重启。。。应该是hot-plug的问题,这个留待后面解决吧,暂且先到这里。------》插拔大功率USB设备时重启,是因为硬件bug,so,将就着用吧。
     
    再后记:
    原来networking的restart里面是这样写的:
    force-reload|restart)
            if init_is_upstart; then
                    exit 1
            fi
            process_options
    
            log_warning_msg "Running $0 $1 is deprecated because it may not re-enable some interfaces"
            log_action_begin_msg "Reconfiguring network interfaces"
            ifdown -a --exclude=lo $verbose || true
            set -f
            exclusions=$(process_exclusions)
            if ifup -a --exclude=lo $exclusions $verbose && ifup_hotplug $exclusionss
     $verbose
            then
                log_action_end_msg $?
            else
                log_action_end_msg $?
            fi

    先全部ifdown,然后再全部ifup。。。so

    所以,还是需要先研究下networking的启动的。

  • 相关阅读:
    高级人力资源管理最喜欢的工具;笔迹分析测试的六大好处
    我与时尚MM的那些事儿
    当幸福来敲门
    perl 模板
    一些R函数【自己使用过,保存】
    关于异步加载、缓存图片、软引用等
    android线程同步
    现半透明的popupwindow
    android中的MotionEvent 及其它事件处理
    android客户端从服务器端获取json数据并解析
  • 原文地址:https://www.cnblogs.com/pied/p/3203975.html
Copyright © 2011-2022 走看看