Skip to content

Instantly share code, notes, and snippets.

@zhuziyi1989
Last active November 30, 2022 03:36
Show Gist options
  • Save zhuziyi1989/c32e202bb62b1cc1493b7c23c7eb19b0 to your computer and use it in GitHub Desktop.
Save zhuziyi1989/c32e202bb62b1cc1493b7c23c7eb19b0 to your computer and use it in GitHub Desktop.
路由器上 Entware-NG 脚本的应用

梅林 ddnspod 无法更新域名解析的临时解决办法

梅林的 DDNSPOD 插件失效,原因是腾讯云升级到TLS v1.2 +版本协议 解决办法:挂载U盘(ext4格式),然后依次执行:

安装 Entware-NG

// 存在就跳过此步骤,因为此命令执行一次,以下的操作就要被清空,谨慎操作!
entware-setup.sh  

先升级下 Entware-NG

opkg update  (这一步没成功,后面白搭)
opkg upgrade

安装新版本的 wget、curl

// install wget、curl
opkg install wget 
opkg install curl

原方法是直接修改DDNSPOD 插件脚本里的 wget,但用过一段时间后发现挂载 U盘方式并不稳定,很多时候重启路由器后,发现 U盘不能自动挂载,而且插着 U盘会影响2.4G WiFi信号,故根据koolshare论坛bbis提供的方法改进,不用改wget调用,将entware迁移到jffs分区。于是改用下面删除的步骤请跳过。

执行完毕后,再编辑脚本

vi /jffs/.koolshare/ddnspod/ddnspod.sh

把文件里的两处 wget 改成 /opt/bin/wget

确定jffs剩余容量>30M

df -h

将entware迁移到/jffs/scripts

cp -r /mnt/Swap/entware /jffs/scripts  //将entware迁移到/jffs/scripts,完成后拔下U盘,注意我的是硬盘Swap区 Swap
rm -rf /tmp/opt	//删除原有的软连接
ln -s /jffs/scripts/entware /tmp/opt		//创建新的软连接
mount --bind /jffs/scripts/entware/bin/wget /jffs/.koolshare/bin/wget 		//将新版本wget挂载到系统

创建/编辑自动挂载脚本

vi /jffs/scripts/init-start

init-start的内容为

#!/bin/sh
ln -s /jffs/scripts/entware /tmp/opt
mount --bind /jffs/scripts/entware/bin/wget /jffs/.koolshare/bin/wget

给init-start执行权限

chmod +x /jffs/scripts/init-start

重新开启你的ddnspod插件即可。

参考:https://www.louo.net/index.php/archives/37/

安装 Entware-NG

//此命令执行一次,下面的操作就要被清空,谨慎操作!
entware-setup.sh  

先升级下 Entware-NG

opkg update  (这一步没成功,后面白搭)
opkg upgrade

安装一些软件

// install wget、curl、lighttpd(微型 WEB 服务器)
opkg install wget 
opkg install curl
opkg install lighttpd

选择 88 端口作为 lighttpd 服务器端口

sed -i 's/#server.port                 = 88/server.port                 = 88/g' "/opt/etc/lighttpd/lighttpd.conf"

修复 uploads 目录

sed -i "/server.upload-dirs*/cserver.upload-dirs          = ( \"/opt/tmp\" )" "/opt/etc/lighttpd/lighttpd.conf"

重启 lighttpd

/opt/etc/init.d/S80lighttpd restart

创建外网访问脚本

vi /jffs/scripts/firewall-start

脚本内容:

#!/bin/sh
iptables -I INPUT -p tcp --destination-port 88 -j ACCEPT

给脚本赋予权限,然后启用脚本

chmod a+rx /jffs/scripts/firewall-start
/jffs/scripts/firewall-start

路由器上临时开启一个 Socks5

ss-local -b 0.0.0.0 -s "服务器地址" -p "服务器端口" -l "本地端口" -k "密码" -m "加密方式" -u $ARG_ACL -f /var/run/ss_local.pid

如何关闭?

//查看运行的 pid
cat /var/run/ss_local.pid 
//kill pid
kill [pid]

[教程] 【梅林建站】通过Entware-NG安装建站三件套建个人博客

特瞄的,装了这个不能开KP广告过滤,也不能开智能网络卫士,好不容易装完,特瞄的访问不了了!!!

参考国外帖子弄得!
帖子地址:
https://www.hqt.ro/lighttpd-web- ... -through-entware-ng
https://www.hqt.ro/how-to-instal ... -through-entware-ng

U盘先电脑上格式化Ext3格式,并且在路由上处于挂载状态。

一、安装Entware-NG
SSH客户端或者telnet客户端输入命令:

entware-setup.sh

输入命令后,会叫你选择哪个盘,选择1,U盘。然后就慢慢等待他安装完成! 002HoQPOgy6UzODOJdO6c.png

二、安装lighttpd
lighttpd就是WEB服务器,建站需要安装web服务器和数据库,这是基本的。
1.安装前先升级下entware,输入如下命令:

opkg update  
  
opkg upgrade

反正输进去第一个,提示说不存在,输第二个,再输第一个,就会下载更新,不知道什么情况,没毛病。
002HoQPOgy6UzOQIKsA04.png

2.安装lighttpd,输入命令:

opkg install lighttpd

等待安装完成!

3.选择81端口作为lighttpd服务器端口并修复uploads目录,输入命令:

sed -i 's/#server.port                 = 81/server.port                 = 81/g' "/opt/etc/lighttpd/lighttpd.conf"  

```bash```
sed -i "/server.upload-dirs\*/cserver.upload-dirs          = ( \\"/opt/tmp\\" )" "/opt/etc/lighttpd/lighttpd.conf"

这里就两个命令,第一个命令一行显示不全,跳到下一行了!
4.重新启动lighttpd服务器,输入命令:

/opt/etc/init.d/S80lighttpd restart

5.创建测试页面,输入命令:

cat >> /opt/share/www/index.html << EOF  
  
<html>  
  
<head>  
  
<title>lighttpd default page</title>  
  
</head>  
  
<body>  
  
<h2>lighttpd server is running.</h2>  
  
</body>  
  
</html>  
  
EOF

直接全部复制,敲回车,就直接创建了。
文件是测试lighttpd服务器搭建是否成功用的,其实也可以用winscp软件进路由器自己建立,路径就是第一行命令里面的路径。
6.浏览器输入路由器地址:81,比如我是192.168.2.1,就输入192.168.2.1:81,中间冒号要是英文的。
显示下图就是正常:
lighttpd-optware-ng.png
7.创建PHP信息页面,这玩意就是可以在浏览器中看见你PHP的详细数据。

cat >> /opt/share/www/info.php << EOF  
  
<?php  
  
phpinfo();  
  
?>  
  
EOF

照样的,复制全部,按回车。
8.安装php,反正我玩了几天,不知道PHP是什么玩意,大概是装了就能浏览.PHP后缀的文件吧,像浏览器能打开.HTML的文件。

opkg install lighttpd-mod-fastcgi php5-fastcgi

9.启用PHP

cat >> /opt/etc/lighttpd/conf.d/30-fastcgi.conf << EOF  
  
server.modules += ( "mod\_fastcgi" )  
  
fastcgi.server = ( ".php" =>  
  
( "localhost" =>  
  
( "socket" => "/tmp/php-fcgi.sock",  
  
"bin-path" => "/opt/bin/php-fcgi",  
  
"max-procs" => 1,  
  
"bin-environment" =>  
  
( "PHP\_FCGI\_CHILDREN" => "2",  
  
"PHP\_FCGI\_MAX\_REQUESTS" => "1000" )  
 
 ```bash 
)  
  
)  
  
)  
  
EOF

复制全部,敲回车。
10.重启lighttpd服务器

/opt/etc/init.d/S80lighttpd restart

11.浏览器输入路由器地址:81/info.php,检查下PHP正不正常。显示下图就正常的,要是什么拒绝访问,那试下路由器:81,这个显示正常的话,就是上一步PHP设置的问题,要是也不能显示正常,那就重新刷机吧,我折腾这个,恢复出厂设置,重新刷机无数次。23...... lighttpd-php-eng.png
12.创建外网访问脚本,也就是让防火墙通过81端口?应该是这个意思。。。。。

nano /jffs/scripts/firewall-start

上面是创建脚本命令,输进去会跳出一个编辑器,在编辑器输入下面内容:

# !/bin/sh

iptables -I INPUT -p tcp --destination-port 81 -j ACCEPT

然后按ctrl+O保存,然后回车,然后按ctrl+X退出。这一步我搞了两次,第一次死活退不出,只能关了putty,然后重新进去创建。
13.给脚本赋予权限,然后启用脚本。小白一枚,玩了几天,好像看得懂点命令了!!!

​```bash chmod a+rx /jffs/scripts/firewall-start

/jffs/scripts/firewall-start


14.然后就是设置端口转发了,不知道为啥要重新定向,反正歪果仁这么玩,小白也只能跟着做了。对了,外部端口可以自定义。  
 ![lighttpd-portfw.png](https://ws3.sinaimg.cn/large/006tNc79ly1g2nhmlx6m5j30hs04laa2.jpg)   
到此,WEB服务器就建好了。  

二、安装mysql和phpmyadmin  
mysql就不说了,很多软件都要有这个才能启动。phpmyadmin是一款界面管理mysql的工具,装了他,妈妈再也不担心我不会linux代码了。如果没这些mysql管理工具,就特么要通过DOS界面进行管理数据库,包括修改、创建、删除,在不会用这个工具的时候,我都是直接删除数据库文件,来删除数据库的!!23.....1.安装mysql,指令一行一行复制进去!运行完一个指令,再进行下一个指令!  

```bash
opkg install mysql-server php5-mod-mysql  
  
mysql\_install\_db --force  
  
/opt/etc/init.d/S70mysqld restart

2.给数据库创建密码,把desired_mysql_password换成想要的密码。怎么有点绕口令!反正就是这个意思。

/opt/bin/mysqladmin password desired\_mysql\_password

3.登陆mysql,输入命令,回车,提示输入密码,输入上面设置的密码,回车。

mysql -u root -p

4.创建第一个数据库,mysql>是不用输入的,后面的才是,把第一第二句my_first_database换成你想要的名字,是同一个名字,得是英文字母组成的,desired_mysql_password得换成上面设置的密码,然后注意空格。

mysql> create database my\_first\_database;  
  
mysql> grant all privileges on my\_first\_database.\* to root@localhost identified by 'desired\_mysql\_password';  
  
mysql> quit

5.下载phpmyadmin

cd /opt/share/www/  
  
wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip --no-check-certificate  
  
unzip phpMyAdmin-4.0.10.20-all-languages.zip  
  
mv ./phpMyAdmin-4.0.10.20-all-languages ./phpmyadmin  
  
rm ./phpMyAdmin-4.0.10.20-all-languages.zip

6.安装需要的组件,妈的蛋,我上午就是缺少组件,打不开phpmyadmin。23333.....

opkg install php5-mod-mbstring php5-mod-json php5-mod-session php5-mod-mysqli php5-mod-mcrypt

7.重启lighttpd服务器

/opt/etc/init.d/S80lighttpd restart

8.修复phpmyadmin配置文件,这个搞死我了,因为上面重命名phpmyadmin文件夹的时候命令多了个.zip,把下载的压缩给重命名了,导致修复的时候反馈找不到路径。2333333..

cp /opt/share/www/phpmyadmin/config.sample.inc.php /opt/share/www/phpmyadmin/config.inc.php  
  
chmod 644 /opt/share/www/phpmyadmin/config.inc.php  
  
sed -i 's/localhost/127.0.0.1/g' "/opt/share/www/phpmyadmin/config.inc.php"

9.浏览器输入路由器地址:81/phpmyadmin,登陆phpmyadmin,输入数据库账号密码,就可以进行设置了。
phpmyadmin1.png
phpmyadmin2.png
三、建立WordPress博客

1.下载WordPress压缩文件,并解压出来,把WordPress文件夹,下面的全部文件上传到路由器/tmp/mnt/sda5(我的是sda5)/entware/share/www目录下,也可以在www文件夹新建一个文件夹放网页内容,但是访问的时候得路由器地址:81/文件夹名字。
WordPress下载地址https://wordpress.org/
路径.jpg
2.浏览器输入路由器地址:81,进入博客安装页面,输入数据库参数,进行安装。
安装.png 3.创建博客,然后用设置的账户密码登陆博客。
创建账户.jpg
3.安装插件。因为路由器建站,然后国内屏蔽谷歌,而博客用的是谷歌字体,所以打开有点慢,需要安装插件禁用谷歌字体。
安装插件.jpg
我也忘记插件下载网站了,上次在线安装,装不上,就离线下载了,我放网盘了。
链接: https://pan.baidu.com/s/1eSf4dqy 密码: cmzn

补充:再装个好玩的雅黑探针
下载,解压就OK

cd /opt/share/www/  
  
wget http://www.yahei.net/tz/tz.zip  
  
unzip tz.zip  
  
rm tz.zip

然后浏览器输入路由器地址:81/tz.php 就可以查看服务器信息
探针.jpg

PS:不知道啥原因,可能是我jffs外挂了好几个脚本,有时候服务会不开机自启,出现访问被拒绝,我是重新配置了WEB服务器,然后重新启动服务器,然后没啥问题,开机能不能自启就不知道了,懒得折腾了,将就着玩吧,已经刷机、恢复出厂设置、格式U盘无数次。

再说下直接端口转发,用域名访问,只能访问wordpress博客主页,其他模块会跳到路由器地址,所以要通过修改数据库来修改访问地址。路由器地址:81/phpmyadmin,输入用户名root,你设置的密码,登陆phpmyadmin。找到博客数据库wp_options这一条,修改siteurl和home两条数据的值为“http://域名:外网访问端口/wordpress”,如果博客是直接放在www根目录下,那就不需要/wordpress,直接域名加端口。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment