go语言openwrt,Go语言核心编程 pdf

如何编译OpenWrt

搭建编译环境。编译建议在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中文)

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服务

此时既可以在浏览器中进行路由器配置。

打开 试下吧

hiwifi里更新了openwrt的刷机包,刷完了怎样安装goagent等

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盘上了。


当前题目:go语言openwrt,Go语言核心编程 pdf
本文网址:http://ybzwz.com/article/hccche.html