挖井

类库大魔王的挖井日记

挖一口属于自己的井


使用Archlinux做树莓派翻墙网关

从妹子家里拿回来的树莓派1B不知道出了什么问题,开机只能跑个一两天,之后就连不上网了,从路由器看它也掉线了,只能断电重启才能再次连上。连续遇到两次,我也没耐心继续耗下去了,打算重装系统,原本用着Raspbian,1B的机能实在差了点,于是想着装Archlinux这种比较轻量级的试试,另外一个想用Archlinux的原因是它的官方仓库里一般会有比较新的GccGo安装包,avege用Go开发,试试GccGo编译是否会有更好的性能表现。

Archlinuxarm的网站上找到安装步骤和安装文件,把SD卡插在另一个2B+树莓派上很快就装好了,然后插回1B树莓派,上电开机,就能得到一个看起来比Raspbian要轻量点的系统。

有了一个可以跑的Archlinux系统,之后便是各种安装软件和设置操作:

  • 修改软件源镜像到国内,我比较喜欢使用中科大的源
  • 滚动升级一遍系统pacman -Syu,然后安装sudo,git和gcc-go包,这样最基本的能用普通账号工作的软件都有了。
  • 用git取下avege的源代码,并把其他工作环境中用过的一些Go的第三方package源代码全都拷过来。
  • 用GccGo编译avege:GOPATH=$GOPATH:$PWD/../.. go install -gccgoflags="-s",遇到链接找不到符号的问题,报https://golang.org/x/sys/unix/syscall_linux_arm.go里用到的seek函数找不到具体实现,网上搜了一下没发现什么有用的信息。而且看代码发现只有ARM和386架构的Linux port才用到了这个函数,一头雾水。
  • 放弃GccGo,从官网下载Go官方编译器套件,顺利编译通过。
  • 安装avege运行时依赖的软件redis和dnsmasq,avege已能正确工作。
  • 要把avege添加到systemd中开机自动运行,像Raspbian中那样添加一个/etc/rc.local文件已经不管用了,在archlinux的官方论坛找到一个论坛回复可以解决这个问题。
  • 要禁止dhcpcd修改/etc/resolv.conf,在Raspbian下用命令chattr +i /etc/resolv.conf就能解决的问题,在Archlinux下一直报Operation not supported while reading flags on /etc/resolv.conf,然后看到一个简便办法,只要把软链接删掉,重新创建一个新文件就不会被修改了。

如此一番,再次重启树莓派,从DHCP得到一个IP后,局域网内其他机器可以用这个IP作为网关和DNS地址,实现翻墙了。


最近又有点中毒其他小板子,比如Pine A64Orange Pi Plus 2EBanana Pi R1,各有各的特点,比如64位,性能强,多网口。另外还知道了一个新的系统DietPi,据说优点是超轻量和为小板优化,有机会也得试试。

本文地址:

https://minidump.info/blog/2016/12/use-archlinuxarm-on-raspberrypi-gateway/

上一篇

一些计划

又到年底了,看了下之前的2016年计划,发现似乎一条都没实现,这是多糟糕的执行能力。老话说得好,计划没有变化快,这话尤其适合我这种爱开坑,爱立flag,又爱拖延的人。于是我觉得我仍然得做些计划,不长远,就近期的一些小步子。有几个项目,要继续着手,之前想的做这个做那个,最后都没坚持下来,除了爱拖...…

Life 全文阅读
下一篇

设备对局域网网速的影响

屋里的网络突然变得很慢,连打开百度首页、电信首页都非常吃力,转圈很久仍然有不少图片不能加载出来,重启了光猫和所有路由器,仍然没有改善,最后是通过打电话给电信客服,让客服在他们那边重启了一下什么设备或是线路才搞定。趁这个机会我却正好测试了一下屋里各个路由器、网关等设备对局域网网域的影响。屋里拉了...…

network 全文阅读