华硕RT-AC系列路由器Merlin版固件脚本分享

一些自用的脚本,分享给各位。本人只有一台AC68U,故不保证脚本在其他平台上的可用性。

使用自定义脚本需要的步骤:

1. 安装Merlin版固件 (去这里下载),截至目前为止,支持 AC56、AC66、N66、AC68、AC87、及 AC3200,N16系列则已不再更新。

2. 在系统设置中开启JFFS2

3. 允许执行JFFS脚本

4. 开启SSH

1. DnsPod自定义动态域名更新脚本

Asuswrt-Merlin 378.50版本开始,Merlin固件开始支持自定义DDNS脚本,基本可以使用所有动态域名平台了,以下是用于更新DnsPod域名记录的脚本,保存为 /jffs/scripts/ddns-start 并设置权限 755

#!/bin/sh

updateDns() {
local userName="你的DnsPod用户名"
local password="你的DnsPod密码"
local sub_domain="子域名"   # 例如 www.sylphia.org,这里就写 www
local domain_id="要更新的域Id"  #这两个Id可以从DnsPod的客户端中获取到

local record_id="子域名Id"

local data="login_email=${userName}&login_password=${password}&format=json&domain_id=${domain_id}&record_id=${record_id}&record_line=%E9%BB%98%E8%AE%A4&sub_domain=${sub_domain}"
curl -X POST https://dnsapi.cn/Record.Ddns -d "${data}" -s | grep -c '"code":"1"'
}

local updated="0"
local waitTime=10
logger -t DnsPodUpdater "Trying to update dnspod record..."
while [[ $updated -ne "1" ]]; do
#statements
updated=$(updateDns)
echo $updated
if [[ $updated -eq "1" ]]; then
#statements
logger -t DnsPodUpdater "Dnspod record updated."
else
logger -t DnsPodUpdater "Dnspod record update failed, retrying after $waitTime seconds..."
sleep $waitTime
fi
done

/sbin/ddns_custom_updated 1

exit 0

2. 开启 iptables 的 geoip 模块

下载 ,解压缩其中的两个文件并保存到 /jffs/geoip/ 目录下

新建或编辑 /jffs/scripts/services-start 脚本,加入以下内容

#!/bin/sh

insmod xt_geoip
mkdir -p /var/geoip/
cp -f /jffs/geoip/* /var/geoip/

这之后iptables 就可以使用 geoip 作为 -m的参数了

3. 配置 ShadowSocks

咳咳,你懂。首先你要有shadowsocks-libev的可执行文件,这里暂不提供了,各路由器平台也不同,网上一搜就有,推荐放在 /jffs/bin/ 下面,记得改权限 755

然后创建 /jffs/configs/ss.json (文件名随意)

内容为

{
"server":"你的SS服务器IP",
"server_port": 你的SS服务器端口,
"password":"你的SS服务器密码",
"timeout":300,
"method":"你的SS服务器加密方式"
}

创建 /jffs/scripts/start-shadowsocks 并设置权限755

#!/bin/sh
logger -t ShadowSocks "Killing existed shadowsocks processes..."

kill -9 `ps | awk '/ss-/ && !/awk/ {print $1}'`

logger -t ShadowSocks "Starting ss-redir"
/jffs/bin/ss-redir -c /jffs/configs/ss.json -b 0.0.0.0 -l 8888 --fast-open -f /home/root/ss-redir.pid

logger -t ShadowSocks "Starting ss-local"

/jffs/bin/ss-local -c /jffs/configs/ss.json -b 0.0.0.0 -l 3333 -f /home/root/ss-local.pid

其中,8888 端口是用于透明代理,3333端口用于socks代理

最后在 /jffs/scripts/services-start 脚本中增加一行 /jffs/scripts/start-shadowsocks 就可以了。

当然,配置了SS以后还需要建立 iptables 规则,最好再配合dnsmasq,才可以,就不在这赘述了,但有了 geoip 模块,相信iptables规则可以更猛烈一些。dnsmasq也是merlin固件的标配,亦无需复杂配置,只需要在/jffs/configs/dnsmasq.conf.add中增加你的配置即可

重启路由~ Goooglllllleeeeee

 

3 一条评论

  1. 去掉amp;后dnspdod脚本正常运行,感谢

  2. 你好,叛逆联队2的注册验证码输入一直提示错误,导致一直注册不上.能修复吗?

  3. 大神你好 我注册BC2账号的时候总是提示错误的验证码,我真的很想玩C组大神的BC2,可是注册不了账号

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.