扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
搭建编译环境。编译建议在Linux下进行。我的系统是Linux mint 17,执行以下命令,构建编译环境:
创新互联公司致力于成都网站制作、成都网站建设,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择创新互联公司,就选择了安全、稳定、美观的网站建设服务!
sudo apt-get update
sudo apt-get install git-core build-essential
获取openwrt源码。在当前用户主目录下执行
git clone git://git.openwrt.org/openwrt.git
等待代码下载。结束后,目录下会出现openwrt文件夹。
配置软件源。进入openwrt目录,执行
./scripts/feeds update -a
./scripts/feeds install -a
检查编译环境是否完整:
make defconfig
make prereq
根据提示信息安装需要的软件包。如果提示类似
“tmp/.config-package.in:22022:warning: multi-line strings not supported”
的信息,打开 openwrt/tmp/.config-package.in,定位到对应行,添上丢掉的一个引号就可以了。
编译选项:
执行 make menuconfig,根据路由器情况,选择 Target System 和 Subtarget。如意云一代和极壹S的 Target System 均为 Ralink RT288x/RT3xxx 。对于Subtarget ,前者为 MT7620n based boards ,后者为 MT7620a based boards。
其他选项根据个人喜好选择。一般来说要选中LuCI界面,选中中文语言包等等。
开始编译:
执行 make -j2 V=s 进行编译。-j后面的数字是电脑物理CPU数量加一。V=s可以显示出编译的详细信息。首次编译大概需要几个小时的时间。
错误排查:
编译失败,一般有两种情况:
1.代码下载链接失效。首次编译时,编译程序会实时从网上下载一些软件包的代码。如果下载链接失效,编译就会失败。这时需要根据软件包的名称,从网上自行下载,然后放在 openwrt/dl/ 目录下,执行 make -j2 V=s 继续编译即可。
2.软件包自身有问题。这时重新执行 make menuconfig ,取消对应软件包选中即可。这种情况比较少见,目前已知的有 tor 等。
编译成功,但没有生成固件。这种情况一般是因为选中的软件包过多,导致固件大小超过16MB。重新执行 make menuconfig,去掉一些软件包,重新执行编译即可。
得到固件。在排除了所有错误后,现在终于得到了固件。对于如意云RY-1,固件在 openwrt/bin/ramips 目录下,形如
openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin
等等。
OpenWRT 安装 LUCI
每次ssh登陆OpenWRT安装新软件时,都必须更新opkg
opkg update
安装LUCI
opkg install luci
安装luci中文语言包, 不同OpenWRT版本中语言包的名称并不相同,比如15.05.1版本中。 进入 查找语言包的ipk 为 'luci-i18n-ahcp-zh-cngit-16.018.33482-3201903-1_all.ipk' ,所以可以通过以下命令安装:
opkg install luci-i18n-ahcp-zh-cn
其他版本类似。 opkg安装源的url位置可以在 /etc/opkg.conf 中看到。
启动LUCI
/etc/init.d/uhttpd enable 将uhttpd加入开机启动
/etc/init.d/uhttpd start 启动uhttpd服务
此时既可以在浏览器中进行路由器配置。
打开 试下吧
1、安装python
下载本页附件libopenssl_1.0.1c-1_brcm63xx.zip,解压后将libopenssl_1.0.1c-1_brcm63xx.ipk上传到路由器/tmp目录
如果你的路由器是Atheros AR7161,请下载libopenssl_1.0.1c-1_ar71xx.zip
官方libopenssl的安全线程支持上有问题,会出现“ssleay_rand_add: Assertion `md_c[1] ==
md_count[1]' failed”这样错误,用这个libopenssl就没有问题了。用ssh或者telnet登录到路由器运行如下命令:
cd /tmp
opkg update
opkg install libopenssl_1.0.1c-1_brcm63xx.ipk
opkg install python
opkg install pyopenssl python-openssl
复制代码
2、在OpenWrt上安装goagent
GoAgent是一个基于Google Appengine,因此你必须在app engine上部署goagent的服务端。关于goagent部署请看这里,很详细:或者
现假定你的goagent服务端已经部署了
下载goagent:,解压出来,修改/local/proxy.ini
将ip改成0.0.0.0
[listen]
ip = 0.0.0.0
复制代码
将appid改成你的appid,多个appid用“|”分隔
[gae]
appid = myvpn|myvpn2
复制代码
用ssh或者telnet登录到路由器运行如下命令:
mkdir -p /app/goagent/local
复制代码
将certs目录、CA.crt、proxy.ini、proxy.py上传到路由器/app/goagent/local目录下。
3、启动goagent
python /app/goagent/local/proxy.py
复制代码
先不要关闭ssh控制台,使用chrome的SwitchySharp插件测试一下代理是否成功。将其中“HTTP 代理”地址改成路由器地址,我这里是192.168.11.1
使用SwitchySharp访问一下twitter.com或者facebook.com看看是否成功:
如果成功,ssh控制台也会滚屏显示日志:
4、设置开机启动goagent
将下面代码加入到/etc/rc.local(或者直接在luci界面,系统启动项本地启动脚本 中添加)中
python /app/goagent/local/proxy.py
复制代码
重启路由看看是否正常。
5、PAC文件利用
利用PAC文件可以实现自动代理。
打开SwitchySharp》导入/导出》导出PAC文件,将导出SwitchyPac.pac文件上传到路由器/www目录中。根据这个文件浏览器就能确定哪些网址需要使用代理,哪些直接连接就可以了。
或者,打开proxxy.ini修改[pac]中的ip地址为0.0.0.0,将SwitchyPac.pac放入proxy.ini相同目录中,此时pac访问地址为。
pac在chrome、ie、firefox等上都支持的(有的要插件),包括ios平台也可以使用pac文件。上传几张图,大家一看就明白了:
IE中自动代理设置:
ios中自动代理设置:
我的rg100a-aa刷完Attitude Adjustment 12.09后,装了一些常用的软件,再装python、goagent,空间基本够用了。
root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 13.0M 11.1M 1.9M 86% /
/dev/root 1.8M 1.8M 0 100% /rom
tmpfs 14.3M 476.0K 13.8M 3% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mtdblock3 13.0M 11.1M 1.9M 86% /overlay
overlayfs:/overlay 13.0M 11.1M 1.9M 86% /
复制代码
如果你刷了那些大而全的版本,空间不够的话可以装在U盘上了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流