无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2320|回复: 7
打印 上一主题 下一主题

用RaspAP把debian做成无线路由器

  [复制链接]
跳转到指定楼层
1#
发表于 2021-9-11 12:43:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 不点 于 2021-9-12 22:22 编辑

有这样一篇文章:

快速在 Debian 上部署路由功能
http://www.allparty.cn/kuai-su-zai-Debian-shang-bu-shu-lu-you-gong-neng.html

这篇文章不长,因此,说 “快速” 是名副其实的。但是,里面那一大堆网络配置命令,对于一个网络外行来说,是很难理解的,更不可能 “快速” 理解。

如果您也是像我一样的网络外行,只懂得一些简单的 shell 命令,那么,您可以继续阅读。否则,请移步,因为上面的那篇文章已经够您用了。

RaspAp 是个自动化的配置工具,有很多文章介绍了它。比如:


把树莓派变身无线AP
https://www.cnblogs.com/phyger/p/14029642.html

我的目的是想把我的桌面 debian 变成一个简单的无线路由器,只要能开辟一个无线 AP,让手机能上网,就算成功。

RaspAp 并不支持所有的 Linux 版本。目前它只支持少数几种 Linux,而且对于 debian 来说,貌似只支持 debian 10,而不能支持别的版本。很幸运,我的 debian 碰巧就是 debian 10。

上面这篇文章写的很详细,但其中有一步,我作了一点改进。在安装 RaspAp 的时候,文章写着需要 “手动安装”,因为无法用 curl 命令进行自动安装。手动安装的步骤很多,执行起来很头痛,我有点畏惧。因此,我尝试改进。我的改进是,下载某个安装脚本,进行微量修改,让其依然能够执行傻瓜式的自动安装。

自动安装之所以失败,是因为安装脚本所在的网站 https://install.raspap.com ,无法访问(不管是墙掉了,还是别的原因,反正无法访问)。

但上述网址实际上指向


https://raw.githubusercontent.com/raspap/raspap-webgui/master/installers/raspbian.sh



脚本,所以,实际上是这个脚本文件所在的网站无法访问。但 RaspAp 本身是开源的,于是我就试着用 git 命令把 raspap-webgui 克隆下来,克隆到主目录下:

cd
git clone https://github.com/RaspAP/raspap-webgui.git

克隆完以后,在主目录下就有了 raspap-webgui 这个文件夹了。其中就有 raspbian.sh 文件:
ls -l ~/raspap-webgui/installers/
总用量 104
-rwxr-xr-x 1 pi sudo 29539 9月   8 20:43 common.sh
-rwxr-xr-x 1 pi sudo  1417 9月   8 20:43 configauth.sh
-rwxr-xr-x 1 pi sudo  1374 9月   8 20:43 configport.sh
-rwxr-xr-x 1 pi sudo   102 9月   8 20:43 disablelog.sh
-rwxr-xr-x 1 pi sudo   124 9月   8 20:43 enablelog.sh
-rwxr-xr-x 1 pi sudo  5564 9月   8 20:43 mkcert.sh
-rwxr-xr-x 1 pi sudo    99 9月   8 20:43 openvpnlog.sh
-rw-r--r-- 1 pi sudo   612 9月   8 20:43 raspapd.service
-rw-r--r-- 1 pi sudo  2993 9月   8 20:43 raspap.sudoers
-rwxr-xr-x 1 pi sudo  9093 9月   8 21:04 raspbian.sh
-rwxr-xr-x 1 pi sudo  3414 9月   8 20:43 servicestart.sh
-rwxr-xr-x 1 pi sudo   994 9月   8 20:43 toggle-bridged-routed.sh
-rwxr-xr-x 1 pi sudo  9091 9月   8 20:43 uninstall.sh
-rwxr-xr-x 1 pi sudo   320 9月   8 20:43 update_blocklist.sh



用 vi 打开 raspbian.sh,发现其中有两条 wget 命令,用来继续下载 common.sh 和 mkcert.sh 脚本。一个脚本,在其执行过程中,还要下载别的脚本,这肯定是这个脚本的一个毛病,不过,现在我只需要对此具体问题进行 workaround 就行,没必要对其整个项目动手术。


方法很简单,它不是要下载 common.sh 和 mkcert.sh 吗?我已经克隆到本地了,根本不需要下载。所以,我修改 raspbian.sh,把 wget 那行,改成一个 if 判断:

  1.     if [ -f ~/raspap-webgui/installers/${source}.sh ]; then
  2.             cp ~/raspap-webgui/installers/${source}.sh /tmp/raspap_${source}.sh
  3.     else
  4.             wget "${header[@]}" -q ${UPDATE_URL}installers/${source}.sh -O /tmp/raspap_${source}.sh
  5.     fi
复制代码


意思就是,当本地已经存在脚本文件时,直接使用本地的文件,只有当不存在本地文件时,才去执行 wget 命令。由于本地文件是存在的,这样,就不会去执行那条注定会失败的 wget 下载命令了。

总共有两条 wget 命令需要修改,修改的思路完全一样。

修改完后,就可以开始正式工作了。

官方的安装步骤,要求在正式安装前先执行以下命令更新和升级操作系统:

sudo apt-get update

sudo apt-get full-upgrade

sudo reboot

我也是这么做的。其中,full-upgrade 这一步,由于网速慢,花了 2 个小时。

接下来,由于(刚才说过了)

curl -sL https://install.raspap.com | bash

其中含有下载,是注定要失败的,所以,就在 shell 提示符下直接敲入并执行本地的

~/raspap-webgui/installers/raspbian.sh

来安装了。执行这个脚本时,无需事先进入 root 账户。脚本在需要 root 权限时,会自动使用 sudo 命令来获取 root 权限。

安装过程会提问一些问题,如果不懂,就答 yes。

这样,傻瓜式的安装就完成了。

重启电脑,用手机搜索,并未发现 raspi-webgui 这个热点信号——失败了。

用本机的浏览器,在地址栏敲入 localhost,可以进入 RaspAp 的管理页面。但折腾了很久,也找不出问题在哪。没信心,快要放弃了。

今天发现,在 debian 桌面的无线信号管理中,先断开所有的无线信号(用鼠标操作即可),再在终端命令行上敲入并执行

sudo systemctl restart raspapd.service

就好了。

我试着在 rc.local 中添加

systemctl restart raspapd.service

但不正常,只能去掉。后来发现,在 rc.local 中添加

systemctl restart hostapd.service

好像管用,但过一段时间,信号会丢失,需要再次在命令行执行

sudo systemctl restart hostapd.service

而在命令行如果执行一次

sudo systemctl restart raspapd.service

则信号能永久保持,不会丢失。但是,这句放在 rc.local 不正常,必须手动在命令行执行。目前就先这样凑合着用吧。

哦,顺便说一下,我用两个无线网卡,一个是 AP 模式用来发射 WiFi 信号,一个是 client 模式用来接收上级路由的信号。单一无线网卡的中继,我还没有试验,暂时也没有这样的需求,因此也不想试验了。

【更新】这个问题解决了!在 /etc/rc.local 里面应该添加的语句是


{ sleep 60; systemctl restart hostapd.service; } &


我猜想一下为什么需要等待 60 秒才能成功。很可能是这样的:在图形界面的桌面启动以后,debian 系统又对 WiFi 进行了接管(或管理),导致原先的 hostapd 服务失效。在此之后重新启动 hostapd 服务,才真正起作用。等待的 60 秒,是等待 debian 的接管完成(它只接管一次,不会重复接管多次),所以,此时重启 hostapd 服务就不再受干扰了。


【再补充】漏掉了一个细节,需要补充说明。有一个选项必须禁用,否则,仍然会失败。在本机浏览器地址栏敲入 localhost 可以进入 RaspAp 的设置页面(需要口令,默认的口令是 secret)。点击页面左侧的 “DHCP 服务器设置”,禁用 Install a default route for this interface 这个选项。如果不禁用,那么用 sudo route 命令列出来的路由,就会出现两个带有 default 的行,这将导致失败。


2#
发表于 2021-9-16 10:08:02 | 只看该作者
无线路由器又不贵,这样麻烦是为了?菜鸟不是很懂
回复

使用道具 举报

3#
发表于 2021-9-24 00:38:54 | 只看该作者
学习一下看看
回复

使用道具 举报

4#
发表于 2021-9-24 09:39:34 | 只看该作者
口令是 secret
回复

使用道具 举报

5#
发表于 2021-10-16 19:59:27 | 只看该作者
试一下
回复

使用道具 举报

6#
发表于 2021-10-22 09:51:20 | 只看该作者
关注中
回复

使用道具 举报

7#
发表于 2021-11-21 21:19:07 | 只看该作者
在 Debian 上部署路由功能
回复

使用道具 举报

8#
发表于 2021-11-26 23:01:17 | 只看该作者
感谢大大辛苦分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-11 01:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表