首先,关于PPPOE拨号和开启热点的,可以看我前两篇文章。
PPPOE拨号
开启热点
其实,有一件很奇怪的事情就是。
当我pppoe拨号的时候,拨号程序并不会将我的pppoe网关加入路由表中。
这是因为,检测到了路由表里原来就有一个默认网关(可能是校园网的问题,默认校园网的网关,可是我是翼迅拨号。网关可能不一样。)
那么,这样就造成了,即使PPPoE拨号成功也上不了网。
对于这个问题,我们可以手工地在路由表里面添加我们的PPPoE网关。
route add default gw PPPoE拨号获取的IP
这里的PPPoE拨号获取的IP可以这样查询到:
ifconfig ppp0
添加完网关之后,就可以上网了。
然后,你会很神奇地发现,树莓派发出来的WIFI并不能够上网。
经过我的排查发现,是因为在之前建立热点的时候,我们做的NAT数据转发是将wlan0的数据转发到eth0上。
而eth0走的是校园网的网关,和翼迅PPPoE的不一样。
那么,我们就可以重新添加NAT转发(注意!这个必须在每次PPPoE拨号成功后添加才有效,别问我为什么这样。)
sudo iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
添加完之后,你就会神奇地发现,WIFI有网了!!!啊哈哈哈哈哈哈哈哈哈