尽管江安电信已经取消强制使用流氓客户端拨号的规则,但有备无患,以防万一,一个支持飞Young拨号的路由器还是必要的。下面将演示如何通过修改openwrt的pppd逻辑实现此功能。

准备交叉编译工具包

现成的交叉编译工具包

你可以在http://archive.openwrt.org/上找到对应版本和架构的工具包,它们的文件名通常像这样OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2,核对好当前版本、架构、gcc版本以及编译机架构,下载下来解压即可。
sudo tar jxvf OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
请善用Google的site:语句,如查找17.01.2版本的LEDE,直接搜索“17.01.2 site:archive.openwrt.org”。

没有找到对应平台的工具包

需要准备Linux环境,避免使用WSL,下面演示以Ubuntu 14.04为例。
拉取openwrt并安装依赖:

git clone https://github.com/openwrt/openwrt
sudo apt-get update
sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk
sudo apt-get install subversion mercurial
sudo apt-get install ccache

进入openwrt-master,执行make menuconfig,修改target system为对应平台,选中交叉编译工具,保存后退出。

执行make V=99开始编译,编译完成后在/bin/ramips/目录下生成了交叉编译工具包。

配置环境

将工具包加入PATH,可用pwd查看当前路径。修改/etc/profile:

export PATH=工具包中的bin目录:$PATH
export STAGING_DIR=项目中的staging_dir:$PATH

使得profile生效:
source /etc/profile
测试是否成功加入PATH:
mips-openwrt-linux-gcc -v
上述gcc文件名根据需要选择,如mipsel-openwrt-linux-uclibc-gcc亦可。

编译工具

感谢xiaopc的工具:https://github.com/xiaopc/Fyoung-Keygen
拉取下来后使用以下命令生成二进制文件:

mips-openwrt-linux-gcc -c MD5.c -std=c99
mips-openwrt-linux-gcc -c fyoung.c -std=c99
mips-openwrt-linux-gcc -o fyoung fyoung.o MD5.o

在本地执行此文件确定无法执行后,将fyoung文件通过openwrt上传到/tmp/upload。

后续配置

下面操作在openwrt路由器的root权限下进行。

将fyoung文件拷贝到重启不丢失的目录,添加执行权限:

cp /tmp/upload/fyoung ~
chmod +x fyoung

打开ppp.sh文件:
vi /lib/netifd/proto/ppp.sh
输入“/username”查找“username”关键词,找到形如json_get_vars ipv6 demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered的一行,在其下加入

username=`/root/fyoung $username $password`

保存,在PPPOE拨号时,前缀为tyfy的用户名将通过fyoung工具计算真实用户名,前准不为tyfy时按正常流程拨号。

Last modification:August 27th, 2019 at 02:48 pm
If you think my article is useful to you, please feel free to appreciate