Debian开放AP热点 | Blurred code

Debian开放AP热点

panda

2015/11/19

Updated:2015/11/19

Categories: linux

  • 4.Debian开放AP热点
  • Ubuntu建立AP热点 由于Ubuntu和Debian那暧昧的关系,我天真的以为能够照搬这个教程。结果出现了卡在Starting wifi这个步骤。

    分析原因有: 1.Debian的源里面没有ap-hotspot的包,而Ubuntu有。我在Debian上是在百度搜索了一个DEB安装上的,所有可能是版本冲突。 2.AP-hotspot在Debian上有兼容问题。 3.由于我在Ubuntu下无线网卡驱动是修改了设置,而在Debian中是编译安装了新的网卡驱动,可能存在AP-hotspot和网卡驱动的兼容问题。 在Debian下,Gnome自带的热点管理器默认的是AP模式,不再是Ubuntu下的AD-hoc模式,所以用gnome的热点管理器也可以正常工作的。 不过有以下问题: 1.热点采用WEP加密,远不如WPA2方式安全。 2.密码随机,不能自己更改。 3.没有提示,设备断开或者连入,或者管理设备都没有。 4.感觉信号比用hotspod建立的差。

    所以在将就了几天后决定还是回到AP-hostpod。(链接到github) 然而:

    While it may still work, AP-Hotspot is abandoned. That's because there are too many things that depend on the hardware and since I can only test it on one device, that makes the script unreliable for others and for me, pretty much impossible to fix some issues.

    For a more currently maintained project, take a look at create_ap. https://github.com/oblique/create_ap

    Automatically creates an infrastructure (Access Point mode) wireless hotspot in Ubuntu that should work with Android and Windows Phone devices

    大意是:AP-hotspot已经被废弃了,尽管它仍然能正常工作。由于作者只能在一台电脑上测试,但是这个软件的运行很大程度上依靠着硬件的使用。(也就是作者发现这个在其他电脑上会出现各种各样的问题)。于是作者就废止了这个项目,重新发行了新的creat_ap项目。(应该是代码重构了?)。然而作者只说了它在Ubuntu上运行良好(这难道又会开坑吗)

    好,我决定尝试一波。跳转到Creat_ap 看了一下依赖,其核心依然是依赖于hotspod,由于手上并没有ubuntu,不过我怀疑它是否真的能在ubuntu上运行良好。毕竟AP-hostspot必须锁hotspot版本才能运行的惨痛案例现在还没解决呢。 上代码

    cd /tmp#我喜欢在tmp下进行操作
    git clone https://github.com/oblique/create_ap
    cd create_ap
    make install
    #Archlinux可以用yaourt -S create_ap安装
    #如果这里有依赖缺失的话就sudo apt-get install -f吧  我这里依赖是齐全的
    

    然后输入代码:

    create_ap wlan0 eth0 MyAccessPoint MyPassPhrase
    

    就可以启动了,wlan0和eth0对应的都是设备,不需要修改。

    你以为这样就解决了?too young too simple,sometimes naive 我潇洒的敲完命令,然后回车,果断拿出手机准备连热点了。然而十秒钟过去了,并没有任何反应。 仔细阅读了下返回信息,先不说三个warning,大意是你的网卡“not fully support”,还好,不是"not support”。 再往下

    RTNETLINK answers: Operation not possible due to RF-kill
    

    直接Impossible了好吗!我这种萌新完全傻眼了。百度了一波,意料之中的没有任何有价值的信息,没错,百度就是这么垃圾。 还是谷歌吧。具体过程略过,筛选出来两篇文章,一个是arch社区的,一个是关于ubuntu的个人博客记载的。

    [SOLVED] Wireless hard Blocked && rfkill not found Linux WiFi: operation not possible due to RF-kill

    不多说,上代码吧。

    sudo apt-get install rfkill #安装rfkill
    sudo rfkill list all# 列出所有状态
    0: hp-wifi: Wireless LAN
    Soft blocked: yes
    Hard blocked: no
    1: phy0: Wireless LAN
    Soft blocked: yes
    Hard blocked: no
    

    根据archlinux社区某网友的解释,soft block是指系统控制wifi的开关,blocked表示禁止软件随意开启关闭wifi。而Hard block是指buttons on your computer to control。就是这里的soft block阻止了热点的启动。 这个就好解决了。 rfkill unblock wifi 再列出来看看,是不是全是unlock了。

    然后我在github中看到一条命令可以指定某网卡运行,于是输入代码 create_ap --driver rtl871xdrv wlan0 eth0 MyAccessPoint MyPassPhrase 然而出现了错误,提示 Error: Failed to run hostapd, maybe a program is interfering. 然后给出的意见

        rfkill unblock wlan```
    于是我又运行了这两条命令,然后按照常规办法
    ```create_ap wlan0 eth0 MyAccessPoint MyPassPhrase```
    这次终于看见wlan0: AP-ENABLED 了  打开手机,找到热点了。成功连上。
    
    再补充一点,ap-hotspot启动后关闭终端不会影响热点,而creat-ap关闭终端后热点就关掉了。
    于是我写了个脚本 
    ```bash
    vim ~/openap.sh
    #输入  sudo nohup create_ap wlan0 eth0 XXXXX   XXXXXX &   后台运行
    sudo chmod +x /home/panda/openap.sh
    

    这样启动的时候就可以不用输入代码了~
    备注:不小心前台运行了,如何把一个进程转入后台运行 ctrl+z #挂起 bg1#将该终端丢入后台运行,作业号为1 fg1#把作业号1的任务调入前排 可以用kill 1 杀掉该作业 在编写脚本时候/运行命令的时候,可以用nohup command & 来后台运行某程序,终端关闭会继续运行。