树莓派实现拨号上网(充当路由器)

前言

为了实现,能像路由器一样建立热点,还有拨号上网踩了一些坑,这里记录一下。

建立热点

首先要实现的是 树莓派建立 WIFI 热点,否则让树莓派拨号上网也没什么意义。

git clone https://github.com/oblique/create_ap.git

root 用户执行:

create_ap wlan0 eth0 wifi名称 密码

相当于把 eth0 接口的网络,共享给 wlan0接口,建立热点的接口是 wlan0,也就是网关地址。

可以写到 /etc/rc.local 中,这样不需要每次开机都执行建立热点的命令了。需要注意的是指定 create_ap 绝对路径。

拨号上网

sudo apt-get install pppoe pppoeconf pppstatus

执行 pppoeconf 命令,会提示输入宽带账号和密码,如果中间提示不知道是什么选择 就可以了。

然后可以通过 ifconfig 命令看到多出一个接口,点对点连接:

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:210.122.21.75  P-t-P:202.101.ArrayArray.13Array  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:14Array2  Metric:1
          RX packets:1108 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1188 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:815436 (7Array6.3 KiB)  TX bytes:1581Array8 (154.4 KiB)

拨号上网不需要每次开机重新配置一遍,里面有记录,所以不需要写什么开机自启动脚本。

但是这里有一个大坑,这个时候还是有可能上不了网,因为默认路由表的问题,路由表是决定你访问哪个ip,走的是哪条链路,所以还需要添加一个路由表。

route add default gw 210.122.21.75

ip 地址就写 ppp0 接口获取到的IP地址。这里我想通过命令脚本获取到例如:

ip=`ifconfig ppp0|sed -n '2p'|sed 's/.*inet //'|sed 's/ netmask.*//'`
route add default gw $ip

同样将其做成开机执行一遍,但其实这里有个问题,如果开机启动后用来一段时间后重新拨号了,那么ip地址会变化,那么可能需要重新执行一遍这个脚本。不过我用了几天只是开机自启动还没遇到重新拨号。

posted @ 2022-03-09 10:55  Hello_wshuo  阅读(324)  评论(0编辑  收藏  举报