[保姆级教程]闲置安卓设备利用KSWEB搭建网站

1.软件介绍

KSWeb是一款专为Android设备设计的轻量级Web服务器软件(付费软件),支持PHP、MySQL、Nginx、Apache、Lighttpd。其设计给我最大的感觉就是简洁易用,对于我这种小白来说比较友好。

可以自行搜索这个软件购买正版,也可以直接下载破解版。目前最新版本为3.988。软件最低好像支持到Android 4.0,所以非常适合老旧/闲置的安卓设备使用。

2.搭建网站

2.1搭建网站

(开始前建议先给设备在局域网内设置一个静态IP,不要使用DHCP,否则后期IP变动不便于操作。此处我设置为192.168.1.222。)
去KSWEB的设置选项卡,打开以下选项,防止意外关闭:

  • 关闭省电
  • 锁定Wi-Fi
  • 自动启动
  • 启动时最小化

2.1.1搭建基础网页

此处以运行在我家电视(Android 9.0)的最新版本3.988的 KSWeb 为例,演示如何搭建网站。
打开软件后,有如下界面:

↑ 由于我已经根据我的需求配置好了 此处图片展示的内容与你首次启动所见内容有所差异。

一般来说,首次进入软件后,会自动安装所需组件,只需根据提示操作即可。

待安装完成后,你应能看到,Lighttpd 处于默认的启用状态。如果没有,就手动启动。默认已经有一个主机了,此时点击lighttpd下主机0旁边的链接,在浏览器中打开。如果能够正常加载,那么就算是部署成功了。

部署成功后,你就可以根据你的需求去你手机的主目录下的htdocs文件夹修改与添加网页文件了。

至此,你就可以在局域网内通过内网地址来访问你的网站了。至于如何从公网访问你的网站,使你的网站能从世界的各个角落访问,有两种方法,稍后再讲。

重要:记得关闭“电池优化”相关选项,使KSWeb在后台常驻运行!

2.1.2搭建博客系统

使用上文的Lighttpd服务和以Typecho博客系统为例。

我们首先创建一个数据库。

(先去KSWEB查看PHP和MYSQL是否开启,没有则开启,PHP版本选7.4.23)

首先,转到工具选项卡,在“辅助工具”下找到phpMyAdmin选项,点击并按照提示完成安装,安装到Lighttpd(后面会用到),安装后重启KSWeb。

重启软件后再次进入,你会发现主页“Lighttpd”下多出了个主机(后面跟有phpMyAdmin字样),点击访问,来到登录界面。使用用户名 root,密码留空登录

登录后有如下界面:

点击左侧“新建”按钮(如上图所示),新建一个数据库:

在新建数据库页面的指定区域(如上图)填入一个名字,如typecho,编码方式保持默认,然后点击“创建”按钮。

创建好后会跳转到另外一个页面,提示数据库中没有表。此时不用管他,关掉浏览器。

这样就完成了数据库的创建。

接下来我们安装博客系统。
(如果你想用别的博客系统,如WordPress,也可以参照下面步骤,基本上大同小异,特别是下面的数据库信息,也可作为参考。相对于Typecho,WordPress有着更加丰富的生态。此处使用Typecho是因为它操作较简单,占用较少。)

首先下载Typecho

下载后解压,把内容放在 htdocs 中。然后访问你主机的链接,开始安装,根据要求填写数据库配置界面:

  • “数据库适配器”选择“Pdo驱动Mysql适配器”;
  • “数据库前缀”保持默认;
  • “数据库地址”填localhost
  • “数据库用户名”填root
  • “数据库密码”留空;
  • “数据库名”填你新建数据库时取的名字,如typecho

做完这一切之后,点击“确认 开始安装”,等待安装完成后,进入管理员账号创建界面。根据实际填写就行。用户名可以填写 admin。最后点击“继续安装”。

安装完成后,访问/admin用刚刚创建的账号登录。登录后建议去“控制台”->“外观”更换外观,默认外观很旧,很丑。使用WP就不会有这样的问题。

至此,整个博客搭建完成。你可以自行上网搜索相关资源,根据你的需求设置你的博客。

2.2从公网访问

有两种方案,内网穿透或者公网IPv6访问。 我更推荐使用内网穿透访问。
前置条件:有一个托管在Cloudflare的域名
(其实我同时用了两种方法)

优点 缺点
内网穿透 - 可不加端口号直接访问(80/443)
- 不需手动配置SSL证书
- 支持IPv4/IPv6双栈访问
- 相对安全
- 相对简单
- 跳转时有时会带本地端口号,导致无法打开需手动处理
- 速度相对较慢
- 有时不稳定
公网IPv6访问 - 性能优越,访问速度快
- 稳定性高
- 相对繁琐
- 只支持IPv6网络访问
- 需要加本地端口号
- 配置HTTPS SSL证书较为复杂
两种方案速度对比
IPv6公网访问

Cloudflare Tunnel内网穿透

方案1-公网IPv6访问

众所周知我国家宽基本没有公网IP。
但是我们基本都有公网IPv6地址,而且一般有2个。
可以去这个链接查看,如果点进去返回一串IPv6地址,则说明你的网络支持IPv6。那串地址就是你的公网IPv6地址

如果打不开,则说明你家网络不支持IPv6。考虑内网穿透。也可以去光猫的宽带设置找一下有没有“IPv4/IPv6”选项,或者直接打电话叫师傅。不要投诉,会扣他们钱,到时候就不好跟他沟通了。

如果打得开,那就按照下面步骤试一下,测试能否公网访问:

  1. 去KSWEB的nginx新建一个主机,网页目录还是之前的htdocs,记下端口。此处端口以8001为例。
  2. 点击该主机,点击“编辑主机配置文件”,在配置文件中第13行左右找到
#begin_port (do not remove this label!)
listen 8001;
#end_port (do not remove this label!)

我们在listen 8001;后添加一行:

listen [::]:8001;

改完之后就是

#begin_port (do not remove this label!)
listen 8001;
listen [::]:8001;
#end_port (do not remove this label!)
  1. 保存,退出编辑器,重启Nginx。
  2. 此时拿出手机,使用流量访问http://[你的公网IPv6地址]:8001/。比如http://[2409:8a50:1234]:8001/。如果能顺利加载出来,那么恭喜,你的网站可以公网访问了。
  3. 接下来我们要绑定域名。没有域名可以申请us.kg免费的或者买一个。
    以cloudflare为例,去dash增加一条AAAA解析,不要开小黄云

    然后回到KSWEB,继续编辑刚才提到的主机配置文件。在18行左右找到:
begin_hostname (do not remove this label!)
server_name localhost;

server_name localhost; 后添加一行:

server_name loc.example.com;

loc.example.com替换成你刚才在cf添加解析的域名。

  1. 至此,一切就绪。访问loc.example.com:8001(替换你实际域名),你应能成功访问你的网页。可以去这里测试。

方案2-内网穿透

这里使用Cloudflare大善人的Tunnel配合Termux进行穿透。
Termux也需要关闭电池优化等相关设置,避免被杀后台! 关闭后执行termux-wake-lock 命令,防止被杀。

  1. 首先我们要安装一个Termux ← GitHub,记得开代理下载
  2. 打开Termux,先换成国内软件源。执行
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list
apt update && apt upgrade
  1. 换好后执行以下命令,安装proot-distro:
pkg install proot-distro
  1. 执行以下命令安装Ubuntu,可能花一点时间:
proot-distro install ubuntu
  1. 登入Ubuntu:
proot-distro login ubuntu
  1. 查看架构
uname -m
  1. 下载cloudflared
apt install wget -y && wget https://github.com/cloudflare/cloudflared/releases/download/2024.6.1/cloudflared-linux-arm64.deb
  1. 安装cloudflared
    如果这一步提示无法安装,就根据第6步输出的架构信息,去这里查找相对应的版本,复制链接并替换掉第7步中的链接,重复第7、8步。注意把第8步的命令中的文件名改成你重新下载的。
dpkg -i cloudflared-linux-arm64.deb
  1. 检查是否成功安装,输出版本号则算安装成功。
cloudflared -v
  1. 登上你的cf账号,在侧边栏点击Zero Trust。然后参照这篇文章配置Zero Trust。
    根据文章跳过绑定付款方式后,来到首页,点开侧边栏,依次展开Networks → Tunnels,点击Create a tunnel
    “tunnel type”选择Cloudflared;
    然后给隧道起个名字,并Save;
    接下来就是连接隧道了。在网页中找到这段命令,点击以复制他:
sudo cloudflared service install eyJhIj…
  1. 粘贴命令到备忘录或其他地方,sudo及其后面的空格去掉(就像下面这样),然后再复制:
cloudflared service install eyJhIj…
  1. 回到Termux,粘贴刚才去头的命令,回车运行。一切正常的话,应该会有successful等字样。
  2. 回到网页,下面的Connectors应该也会显示你的设备。
  3. 点击Next,来到 Route Traffic页面。
    填写域名相关信息来绑定域名。
  • subdomain你可以取一个,作为子域名,或者留空;
  • Domain需要你选择一个,作为访问域名;
  • path留空;
  • TYPE选“HTTP”(不要选https);
  • URL填localhost:8001;其中8001改成你实际的端口号。

最后点击Save tunnel,会回到隧道首页。查看隧道的status,若是绿色的HEALTH,则为配置成功。
至此你已可以通过刚才你配置的域名,访问你的网站了(不用加端口号,自带https)。

3.写在后面

这些东西我断断续续折腾了小半年,要是之前我能看到这篇文章就能少花好多时间了

还有一些东西,比如自动更新IPv6地址的sh脚本,可以每隔一段时间检查IPv6地址是否变动,变动时自动上传cf,更新域名的aaaa记录,操作有点麻烦,在这里就不写了,有时间再写。

以上就是这篇文章的所有内容了,希望能够帮到你。写这篇文章花了不少时间,若有错误之处,欢迎指出,若觉得有用,麻烦点个赞,谢谢。

22 个赞

前排

3 个赞

牛哇,贼啦详细

2 个赞

#Termux添加

感谢分享

1 个赞

牛的, 有没有闲置ios设备

1 个赞

之前试过给iPhone6p越狱,装了nginx什么的直接卡住,iOS还是难搞

谢谢保姆

1 个赞

感谢保姆佬

厉害,虽然没这需求

支持

感谢分享

1 个赞

Crazy level knowledge.

1 个赞

可以使用github开源项目实现,关键词DDNS

1 个赞

啊!我的老手机都换脸盆了

不错,闲置的机子有用处啦

厉害了我的哥

是的,一箩筐,结果当时问gpt编了一个,也勉强能用