Linux下连接无线网络后拨号(即PPP over WiFi)

连接一个无线网络(例如一个当交换机的无线AP),然后ADSL拨号上网。这一个在Windows下很简单的事情,在Linux下却变得稍微有点麻烦,甚至让人不知所措。今天有空在Fedora下捣鼓了一把,发现其实相当简单,只不过得通过命令行式的操作而已,下面就拿来和大家分享一下。

首先用NetworkManager(或者什么别的网络管理工具)连接到无线AP,终端下运行iwconfig看看无线网络介面卡的名字(如下图所示),例如我这里是wlp2s0。

iwconfig

继续终端下运行(Red Hat系发行版基本还在用rp-pppoe):

sudo pppoe-setup

Debian/Ubuntu等运行:

sudo pppoeconf

在提示选择PPP使用的网络介面卡(interface)时,输入无线网络介面卡的名字,如我这里就是输入wlp2s0。

再确认一下wlp2s0是否已经UP了,终端下运行ifconfig(不是iwconfig)看看wlp2s0的flags是否包含UP,如下图所示。

wlp2s0status

 

如果没有UP的话,需要终端下运行:

sudo ifconfig wlp2s0 up

激活它。然后就可以终端下运行:

sudo pppoe-start

Debian/Ubuntu应该是运行下面这条命令:

sudo pon dsl-provider

拨完号用ifconfig命令看看是否已经有ppp0连接了吧。

 

附注:

如果需要PPP自动协商获取IPv6地址的话,需要在/etc/ppp/options里加上一行:

+ipv6

 

 

9 responses to “Linux下连接无线网络后拨号(即PPP over WiFi)”

  1. fengidea avatar

    您好,我想问几个问题:
    1. +ipv6 设置后可以自动获取IPv6地址?这里是不是添加了一个邻居发现的广播包?
    2. ubnt/Openwrt 等路由中继或者桥接的方式连接 Chinanet,用PPPoe拨号不能成功,不知道是什么的问题。。

    1. librehat avatar

      1. 恩,可以获取IPv6地址的,而且新的发行版应该默认配置就打开了ipv6了。我对TCP/IP不了解,不过+ipv6就是让设备去寻找IPv6地址,邻居广播的地址应该也是会被拿来的。
      2. 先确定路由中继是否配置正确,记得关闭路由的NAT,另先在Windows下测试能不能拨号。

      1. fengidea avatar

        额,为什么要关掉NAT?

        1. librehat avatar

          你不关闭NAT的话,怎么中继上游的地址?做桥接和中继本来就是要关掉NAT的,不然连接的设备获得的是该路由的子网地址,而不是上游设备的网络地址。

          1. fengidea avatar

            啊!太谢谢了,哎,看来以后是多要在网上问问人啊。
            茅塞顿开。

  2. BumBum avatar
    BumBum

    用Google能搜到当天发布的文章。。
    话说之前有人在opensuse的社区问过,但是没有确切的解决办法。。

    1. librehat avatar

      什么叫用Google能搜到当天发布的文章?

      目前看来是只有终端下用pppoe-start才可以。

  3. guxen avatar
    guxen

    每次都要这样来一遍也够蛋疼的了,不知道开发者能不能解决这个问题,,记得很久前我在网上问过这个问题,结果被群起而攻我,,,每个人都是卫道士,不承认linux有不好的地方,还说哪有这么奇葩的上网方式,,,不管怎样,即使解决了,那时我也用不到了,,,

    1. librehat avatar

      这个就算报上去当bug了,解决周期也很长,除非你有空自己写一个patch……