Jul
5
WR1041N v2 安装openwrt
(懒得看细节的同学直接拉到末尾下载带有shadowsocks的镜像)
TP-Link很久没给我的路由器更新固件了,而且它运行一段时间以后就需要重启才能保证wifi正常,这对于家里有基于Wifi的智能设备来说是不能忍的,所以只能折腾了,上OpenWRT吧。
记得09年的时候折腾路由器,WL520GU,刷上了DD-WRT,然后再交叉编译弄了个锐捷的客户端,这样就可以把校园网分享出来用。心血来潮到珞珈山水去翻了一下,当年发的帖子竟然还在Linux版置顶……
回归正题,1041n的OpenWRT页面在这里: https://wiki.openwrt.org/toh/tp-link/tl-wr1041n
虽然可以从 这里 下载预编译好的镜像,但是不折腾一下感觉不带感,所以参考官方的教程,自定义镜像。
1. 下载 Image Generator
当年玩WL520gu的时候,好辛苦,先得用openwrt的buildroot脚本创建一个交叉编译环境,那个脚本特别不适合中国国情,用wget慢慢下载国外的源……等得我都快崩溃了,于是拉出它的下载连接直接用迅雷下好放进去再启动。现在可好,直接就有现成的环境直接下载,一分钟就搞定了。
具体参考这个页面:https://wiki.openwrt.org/doc/howto/obtain.firmware.generate
正好1041n是ar71xx架构的,照做就好了。
2. 生成image
可惜1041n只有4M的flash,否则我一定把php和python都打进去,这样还能跑起个shadowsocks server。
最后权衡了下,是这么生成的:
make image PROFILE=TLWR1041 PACKAGES='luci luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn libev libpolarssl curl'
之所以把 libev 也打进去,主要是想之后可以用shadowsocks-libev,但是编译了一下发现可执行文件竟然 1M+,strip以后也还有两三百KB,还是算了。
如果不用curl的话,可以把libpolarssl和curl去掉,不过好像也没什么其他特别有用的了(或者是pptp?)。curl我是用来请求DnsPod的,这样可以及时把家里的IP刷到某个域名上去。
如果没什么错的话,生成的 image 就是这个了:
bin/ar71xx/openwrt-15.05.1-ar71xx-generic-tl-wr1041n-v2-squashfs-factory.bin
3. 升级配置
tp不校验固件,所以直接通过路由器管理页面升级就行了。
升级了以后 telnet 192.168.1.1 登上去,用 passwd 修改root密码,然后就可以ssh登录,或者访问luci http://192.168.1.1
image里面带了中文语言包,登录以后可以在 System -> Language 里面修改成简体中文。
配置PPPoE:打开 网络->接口,点击 WAN 接口的修改,看着配就好了。就那么点东西。
剩下的就是瞎折腾了
4. 创建用户
没什么卵用,弄着玩,这样就可以用另一个用户登录路由器,而且还是通过publickey authentication。
echo 'felix021:*:103:100::/overlay/felix021:/bin/ash' >> /etc/passwd
echo 'felix021:*:16831:0:99999:7:::' >> /etc/shadow
mkdir -p /overlay/felix021/.ssh
cd /overlay/felix021/.ssh
echo $PUBKEY >> authorized_keys
chmod 600 authorized_keys
chown -R felix021:users /overlay/felix021/
==== UPDATE ====
还是花了一个晚上折腾了shadowsocks
1 安装SDK
参考:https://wiki.openwrt.org/doc/howto/obtain.firmware.sdk
下载SDK: https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
$ tar jxf Openwrt-SDK*
$ mv Openwrt-SDK* sdk
$ cd sdk
2 编译
$ git clone https://github.com/shadowsocks/openwrt-feeds.git package/feeds
$ git clone https://github.com/shadowsocks/shadowsocks-libev.git package/shadowsocks-libev
# 注@20180524,最新版本会出现编译错误,和libsodium貌似不兼容,建议用 v2.4.7
$ make menuconfig #选中 network 下的 shadowsocks-libev-polarssl
$ make package/shadowsocks-libev/compile V=99
编译好的文件位于:./build_dir/target-mips_34kc_uClibc-0.9.33.2/shadowsocks-libev-polarssl/shadowsocks-libev-2.4.7/ipkg-install/usr/bin/
3 腾出空间(回到Image Builder)
对于4M flash的image来说,openwrt给的空间实在太小了,所以只好打起现有package的主意。翻了一下,ipv6似乎占了比较大的空间,考虑到国内确实用不上ipv6,所以就拿它开刀吧。
参考前面 https://wiki.openwrt.org/doc/howto/obtain.firmware.generate 的 Remove useless files from firmware
修改 Makefile,添加 FILES_REMOVE 选项,并在 files_remove 文件中添加:
/etc/modules.d/20-ipv6
/etc/modules.d/42-ip6tables
/etc/modules.d/nf-conntrack6
/etc/modules.d/nf-ipt6
/lib/modules/3.18.23/ip6table_filter.ko
/lib/modules/3.18.23/ip6table_mangle.ko
/lib/modules/3.18.23/ip6table_raw.ko
/lib/modules/3.18.23/ip6_tables.ko
/lib/modules/3.18.23/ip6t_REJECT.ko
/lib/modules/3.18.23/ipv6.ko
/lib/modules/3.18.23/nf_conntrack_ipv6.ko
/lib/modules/3.18.23/nf_defrag_ipv6.ko
/lib/modules/3.18.23/nf_log_ipv6.ko
/lib/modules/3.18.23/nf_reject_ipv6.ko
/usr/lib/libip6tc.so
/usr/lib/libip6tc.so.0
/usr/lib/libip6tc.so.0.1.0
/usr/lib/opkg/info/ip6tables.control
/usr/lib/opkg/info/ip6tables.list
/usr/lib/opkg/info/ip6tables.prerm
/usr/lib/opkg/info/kmod-ip6tables.control
/usr/lib/opkg/info/kmod-ip6tables.list
/usr/lib/opkg/info/kmod-ip6tables.postinst-pkg
/usr/lib/opkg/info/kmod-ip6tables.prerm
/usr/lib/opkg/info/kmod-ipv6.control
/usr/lib/opkg/info/kmod-ipv6.list
/usr/lib/opkg/info/kmod-ipv6.postinst-pkg
/usr/lib/opkg/info/kmod-ipv6.prerm
/usr/lib/opkg/info/kmod-nf-ipt6.control
/usr/lib/opkg/info/kmod-nf-ipt6.list
/usr/lib/opkg/info/kmod-nf-ipt6.postinst-pkg
/usr/lib/opkg/info/kmod-nf-ipt6.prerm
/usr/lib/opkg/info/libip6tc.control
/usr/lib/opkg/info/libip6tc.list
/usr/lib/opkg/info/libip6tc.prerm
/usr/lib/opkg/info/luci-proto-ipv6.control
/usr/lib/opkg/info/luci-proto-ipv6.list
/usr/lib/opkg/info/luci-proto-ipv6.prerm
/usr/sbin/ip6tables
/usr/sbin/ip6tables-restore
/usr/sbin/ip6tables-save
/lib/netifd/dhcpv6.script
/usr/lib/libiptext6.so
4 加入shadowsocks
$ mkdir -p files/etc/init.d files/usr/bin
$ cp /path/to/ss-server /path/to/ss-local files/usr/bin
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.json files/etc/ss-server
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.init files/etc/init.d/ss-server #修改配置文件路径为 /etc/ss-server,去掉 -b 0.0.0.0
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.json files/etc/ss-local
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.init files/etc/init.d/ss-local #修改配置文件路径为 /etc/ss-local
$ chmod +x files/etc/init.d/*
5 重新生成image
make image PROFILE=TLWR1041 PACKAGES='luci luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn libev libpolarssl curl libpthread -kmod-ip6tables -ip6tables -kmod-ipv6 -kmod-nf-ipt6 -luci-proto-ipv6 -libip6tc' FILES=files/ FILES_REMOVE="files_remove"
升级一下新的rom,然后就可以在路由器上启动shadowsocks的server/client了。
在路由器上启动server,配合surge,就变成一个简易VPN了,效果相当赞。
附1:带有shadowsocks的镜像下载地址为 http://pan.baidu.com/s/1bpl9jK7 密码: 7ugp (貌似不加密码很容易失效)
附2:编译好的shadowsocks
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
TP-Link很久没给我的路由器更新固件了,而且它运行一段时间以后就需要重启才能保证wifi正常,这对于家里有基于Wifi的智能设备来说是不能忍的,所以只能折腾了,上OpenWRT吧。
记得09年的时候折腾路由器,WL520GU,刷上了DD-WRT,然后再交叉编译弄了个锐捷的客户端,这样就可以把校园网分享出来用。心血来潮到珞珈山水去翻了一下,当年发的帖子竟然还在Linux版置顶……
回归正题,1041n的OpenWRT页面在这里: https://wiki.openwrt.org/toh/tp-link/tl-wr1041n
虽然可以从 这里 下载预编译好的镜像,但是不折腾一下感觉不带感,所以参考官方的教程,自定义镜像。
1. 下载 Image Generator
当年玩WL520gu的时候,好辛苦,先得用openwrt的buildroot脚本创建一个交叉编译环境,那个脚本特别不适合中国国情,用wget慢慢下载国外的源……等得我都快崩溃了,于是拉出它的下载连接直接用迅雷下好放进去再启动。现在可好,直接就有现成的环境直接下载,一分钟就搞定了。
具体参考这个页面:https://wiki.openwrt.org/doc/howto/obtain.firmware.generate
正好1041n是ar71xx架构的,照做就好了。
2. 生成image
可惜1041n只有4M的flash,否则我一定把php和python都打进去,这样还能跑起个shadowsocks server。
最后权衡了下,是这么生成的:
make image PROFILE=TLWR1041 PACKAGES='luci luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn libev libpolarssl curl'
之所以把 libev 也打进去,主要是想之后可以用shadowsocks-libev,但是编译了一下发现可执行文件竟然 1M+,strip以后也还有两三百KB,还是算了。
如果不用curl的话,可以把libpolarssl和curl去掉,不过好像也没什么其他特别有用的了(或者是pptp?)。curl我是用来请求DnsPod的,这样可以及时把家里的IP刷到某个域名上去。
如果没什么错的话,生成的 image 就是这个了:
bin/ar71xx/openwrt-15.05.1-ar71xx-generic-tl-wr1041n-v2-squashfs-factory.bin
3. 升级配置
tp不校验固件,所以直接通过路由器管理页面升级就行了。
升级了以后 telnet 192.168.1.1 登上去,用 passwd 修改root密码,然后就可以ssh登录,或者访问luci http://192.168.1.1
image里面带了中文语言包,登录以后可以在 System -> Language 里面修改成简体中文。
配置PPPoE:打开 网络->接口,点击 WAN 接口的修改,看着配就好了。就那么点东西。
剩下的就是瞎折腾了
4. 创建用户
没什么卵用,弄着玩,这样就可以用另一个用户登录路由器,而且还是通过publickey authentication。
引用
echo 'felix021:*:103:100::/overlay/felix021:/bin/ash' >> /etc/passwd
echo 'felix021:*:16831:0:99999:7:::' >> /etc/shadow
mkdir -p /overlay/felix021/.ssh
cd /overlay/felix021/.ssh
echo $PUBKEY >> authorized_keys
chmod 600 authorized_keys
chown -R felix021:users /overlay/felix021/
==== UPDATE ====
还是花了一个晚上折腾了shadowsocks
1 安装SDK
参考:https://wiki.openwrt.org/doc/howto/obtain.firmware.sdk
下载SDK: https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
$ tar jxf Openwrt-SDK*
$ mv Openwrt-SDK* sdk
$ cd sdk
2 编译
$ git clone https://github.com/shadowsocks/openwrt-feeds.git package/feeds
$ git clone https://github.com/shadowsocks/shadowsocks-libev.git package/shadowsocks-libev
# 注@20180524,最新版本会出现编译错误,和libsodium貌似不兼容,建议用 v2.4.7
$ make menuconfig #选中 network 下的 shadowsocks-libev-polarssl
$ make package/shadowsocks-libev/compile V=99
编译好的文件位于:./build_dir/target-mips_34kc_uClibc-0.9.33.2/shadowsocks-libev-polarssl/shadowsocks-libev-2.4.7/ipkg-install/usr/bin/
3 腾出空间(回到Image Builder)
对于4M flash的image来说,openwrt给的空间实在太小了,所以只好打起现有package的主意。翻了一下,ipv6似乎占了比较大的空间,考虑到国内确实用不上ipv6,所以就拿它开刀吧。
参考前面 https://wiki.openwrt.org/doc/howto/obtain.firmware.generate 的 Remove useless files from firmware
修改 Makefile,添加 FILES_REMOVE 选项,并在 files_remove 文件中添加:
引用
/etc/modules.d/20-ipv6
/etc/modules.d/42-ip6tables
/etc/modules.d/nf-conntrack6
/etc/modules.d/nf-ipt6
/lib/modules/3.18.23/ip6table_filter.ko
/lib/modules/3.18.23/ip6table_mangle.ko
/lib/modules/3.18.23/ip6table_raw.ko
/lib/modules/3.18.23/ip6_tables.ko
/lib/modules/3.18.23/ip6t_REJECT.ko
/lib/modules/3.18.23/ipv6.ko
/lib/modules/3.18.23/nf_conntrack_ipv6.ko
/lib/modules/3.18.23/nf_defrag_ipv6.ko
/lib/modules/3.18.23/nf_log_ipv6.ko
/lib/modules/3.18.23/nf_reject_ipv6.ko
/usr/lib/libip6tc.so
/usr/lib/libip6tc.so.0
/usr/lib/libip6tc.so.0.1.0
/usr/lib/opkg/info/ip6tables.control
/usr/lib/opkg/info/ip6tables.list
/usr/lib/opkg/info/ip6tables.prerm
/usr/lib/opkg/info/kmod-ip6tables.control
/usr/lib/opkg/info/kmod-ip6tables.list
/usr/lib/opkg/info/kmod-ip6tables.postinst-pkg
/usr/lib/opkg/info/kmod-ip6tables.prerm
/usr/lib/opkg/info/kmod-ipv6.control
/usr/lib/opkg/info/kmod-ipv6.list
/usr/lib/opkg/info/kmod-ipv6.postinst-pkg
/usr/lib/opkg/info/kmod-ipv6.prerm
/usr/lib/opkg/info/kmod-nf-ipt6.control
/usr/lib/opkg/info/kmod-nf-ipt6.list
/usr/lib/opkg/info/kmod-nf-ipt6.postinst-pkg
/usr/lib/opkg/info/kmod-nf-ipt6.prerm
/usr/lib/opkg/info/libip6tc.control
/usr/lib/opkg/info/libip6tc.list
/usr/lib/opkg/info/libip6tc.prerm
/usr/lib/opkg/info/luci-proto-ipv6.control
/usr/lib/opkg/info/luci-proto-ipv6.list
/usr/lib/opkg/info/luci-proto-ipv6.prerm
/usr/sbin/ip6tables
/usr/sbin/ip6tables-restore
/usr/sbin/ip6tables-save
/lib/netifd/dhcpv6.script
/usr/lib/libiptext6.so
4 加入shadowsocks
$ mkdir -p files/etc/init.d files/usr/bin
$ cp /path/to/ss-server /path/to/ss-local files/usr/bin
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.json files/etc/ss-server
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.init files/etc/init.d/ss-server #修改配置文件路径为 /etc/ss-server,去掉 -b 0.0.0.0
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.json files/etc/ss-local
$ cp /path/to/shadowsocks-libev/openwrt/files/shadowsocks.init files/etc/init.d/ss-local #修改配置文件路径为 /etc/ss-local
$ chmod +x files/etc/init.d/*
5 重新生成image
make image PROFILE=TLWR1041 PACKAGES='luci luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn libev libpolarssl curl libpthread -kmod-ip6tables -ip6tables -kmod-ipv6 -kmod-nf-ipt6 -luci-proto-ipv6 -libip6tc' FILES=files/ FILES_REMOVE="files_remove"
升级一下新的rom,然后就可以在路由器上启动shadowsocks的server/client了。
在路由器上启动server,配合surge,就变成一个简易VPN了,效果相当赞。
附1:带有shadowsocks的镜像下载地址为 http://pan.baidu.com/s/1bpl9jK7 密码: 7ugp (貌似不加密码很容易失效)
附2:编译好的shadowsocks
下载文件 (已下载 1021 次)
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。