To Kill a Netgear

今天搭了一套路由器层v2ray + 透明代理, 连AWS首尔v2ray lightsail节点. 一些点记录如下

搭建路由器和想象的差不多, 果然不会一帆风顺

自带系统

买来 (2手), 自带一个OpenWRT luCI. 一开始想凑合凑合算了. 但是第一, release版本老了点, 装新依赖的时候md5各种通不过. 第二, 更严重的是, 转发设置有问题只有ssh进路由器里面能连WAN, 连wifi不能. 但是没有仔细翻所有firewall设置, 也不知道哪里配置没对 (有可能是隐秘角落做了个iptables转发). 最后决定还是刷系统. 每次想偷懒都失败了, 劳碌命?

OpenWRT

刷最新版本, 买的WNDR4300就是看中支持成熟, 不会采坑. 但是刷系统的时候还是遇到几个小问题. 第一是需要插一下网线 (刷系统的时候wifi信号自然没有). mac转接网线口有问题, 就找运维 张晓雨帮忙, 找来第一台有网线的机子, 浏览器不能联网, 排除了网线接口问题, 百思不得其解. 算了不和仓库角落的老电脑死磕, 换了一台, 立刻可以了. 第二个遇到是, 进入TFTP恢复模式, 需要看到3个绿灯隔一个亮一个并闪烁. 如果连续的一二三灯闪烁, 那叫 - 正常开机, 2.4G指示灯闪烁. 所以一开始进TFTP老不成功. 实际上正常连接1G的网线应该是瞬间传完5MB的OpenWRT factory image (真的小啊! 这些搞嵌入式的真厉害. alpine都比这个大).

还遇到一个是192.168.1.1和公司内网原本路由冲突, 我转移到192.168.1.12去了. 其他的网上人遇到的wifi开不开, 或者传输之后要等3-5分钟等, 我都没遇到, 顺

v2ray

这一块的安装不能说很不顺, 都是琐碎的操作需要细心. 下载默认走https, 但OpenWRT默认是不带OpenSSL的, 想装可以装, 然后才能支持https. 可是呢! github是强制只支持https, 所以一开始下载总connection reset

然后是install.sh脚本里面的一堆小问题, 重命名文件啊, 判断 Atheros AR9344的架构啊 (最后确认是mips, 32位), 还有一次下载文件gz格式损坏了一点, 跑起来报bus error, 错误还不打进error.log, 亲手跑才发现, 头疼

装好了之后主要是配好config.json. 第一次在路由器term上用 export http_proxy=xxx:1080; 跑通的时候, 就知道胜利已迎来曙光

透明代理

最后关头卡住了一个事. 就是不管什么方式, firewall只要配到REDIRECT到1080 (SOCKS) 或者1087 (HTTP) 端口, 一定全都拒绝连接. 也就是没对. 经历了一个小时暴躁乱改过程 (当时有点犯困), 冷静下来想这个问题, 搜了搜透明代理和iptables底层, 真正明白这就是根本不是一个东西. Mac也是在network preferences里面单独配的, 不是iptables搞定的.

这个时候本来想走, 但是能知道差不多了, 又磨了磨, 意识到关键点在config.json里面不一样的那一部分inbound (和 transport) - 也就是说在mac上生效的配置在OpenWRT上不行, 得照大家的走不能照我自己的. inbound里面加上dokodemo-door之后, 终于行了. 这个任意门协议就是透明代理啊, 透明代理是要单有代码在里面的, 不是转个流量就有的.

还差一点路由表相关的事情 - 本来config.json里面写了, 但是因为geoip.dat之类的几个文件没找到 (原因应该是因为我装v2ray-core是用那个github热心网友的repo, 里面是比较裸的bin). 这个再加上不会太难. 但是转念一想, 全局翻墙模拟实际用户使用体验, 也是对的, 正好更能看到比如七牛云的速度或者注意到我们有没有调国内的云服务API. 暂时可以保持这个状态

Written on March 3, 2020