2019年11月15日星期五

看世界-软路由Openwrt

看世界(2)软路由与Openwrt


一、软路由概念。软路由一般是利用PC的硬件加上路由系统来实现路由器的功能,那么就意味着硬件性能肯定会比硬路由的要高出许多,而且配置可以根据自己的需求随时调整,同时价格也肯定比高端的硬路由要便宜许多。同时因为抛开了硬路由的条条框框,软路由的可玩性比一般硬路由要高出许多。软路由从硬件到软件,每一步都是折腾的过程,如果你享受这个折腾的过程那就是你的福音,在硬件上软路由不像硬路由那样有专门的电路板布局及信号放大芯片、屏蔽网等,故WiFi功能是天然劣势,只能通过AP予以弥补。

二、软路由购置安装。软路由的选购和安装,你可以通过taobao搞定,包括店家可以帮你预装诸如Openwrt或爱快等软路由系统(个人建议前者),如果你已弄懂系统安装方面的操作,你也可以购入硬件后自行折腾搞定。当然,为了方便,最好事先你已具备轻松爬墙的能力,这样通过互联网查询相关教程就可以轻松搞定。你要明白,软路由是一个强大的工具而不是说有它就一定能爬墙,但一定能帮助你更好地将爬墙技术运用到家庭生活中,方便家里人共享便利,或方便顺畅地使用诸如AppleTV、Netflix等设备和服务。

三、固件。软路由固件来源一般来说有2种渠道:一是直接下载安装使用别人发布的适合自己软路由硬件的固件;二是根据自己的软路由硬件配置及插件需求自行编译固件,当然也是站在大佬们智慧的肩膀上完成的,具体教程可自行Google查找。

(一)固件编译

1.环境搭建

 L大推荐首选Ubuntu 64bit,版本Ubuntu 18 LTS x64Ubuntu系统安装后更新一下源,LeaneSir万般说明不要使用root用户编译系统,可能会遇到各种问题。

*注意新装Ubuntu需要安装的包(附后)

创建非root用户(如用户名为wq

sudo useradd -m wq -d /home/wq -s /bin/bash

设置密码

sudo passwd wq

修改用户的权限

注:/etc/sudoers文件只有r权限,在改动前需要增加w权限,改动后,再去掉w权限

(1)sudoers增加写入权限

sudo chmod +w /etc/sudoers

sudo vim /etc/sudoers

(2)为用户XXX添加读写权限

 # User privilege specification

root ALL=(ALL:ALL) ALL

wq ALL=(ALL:ALL) ALL    // 本行为新添加代码

(3)sudoers文件的操作权限去掉w权限改为只读模式

(4)su wq  切换当前用户为非已创建的非root账户

2.安装依赖

sudo apt update

apt-get install sudo

 

以下的命令适用Ubuntu 18

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

其余系统版本自行学习寻找答案

待安装完成,需要一点时间。

3.克隆源码
git clone https://github.com/coolsnowwolf/lede
这一步后需要全局代理,防止一些源被屏蔽造成编译失败。
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
feeds 这一步会安装扩展代码选项,就是进入make menuconfig 后的各种扩展包选项,如果没有安装你可能看不到。

4.生成默认配置文件
make defconfig
这个命令会检查所需的编译工具是否齐全,并生成默认的编译配置文件.config

5.配置编译选项
在终端输入:make menuconfig
进入后你可以利用键盘上的上下键选择你要编译的平台,比如X86平台,然后在选择一些必要的软件包。每次编辑后需要要Save保存,然后退出即可生成.config配置文件。

6.下载源码
配置完成后需要下载你选择的那些软件和必要的文件,OpenWrt仅有编译及配置指令,各种依赖的代码包在上游网站及代码仓库里,编译会下载大量源代码
make download V=s
这一步可能需要很长时间,而且必须全局代理,如果你代理够快可能需要半个小时到三个小时或者更长的时间。根据个人经验,墙内同学这一步最容易出总是,主要是梯子不稳造成的,会有很多文件不能正常下载到系统中,解决方案:一是更换稳定梯子确保网络正常重新下载,二是copy别人已经下载能正常编译使用的文件到Lede目录中,三是放弃自行编译改用云编译途径实现个性化固件编译。

7.编译系统
上面的步骤准备无误后进行编译,推荐第一次编译使用单线程,方便排错,如果你对配置很有信心也可以使用多线程。
make V=s -j1
-j1 这个参数就是限制线程的意思,如果使用多线程可以不加这个参数又系统自己判定你CPU核心数来完成。
上面这一步建议使用screen 来守护进程,有时候你可不小心断开终端丢失会话编译就会中断。安装screen:
sudo apt install screen
screen 使用很简单-S命令创建一个会话:
screen -S openwrt
按住键盘上 Ctrl +A +D 挂载到后台,查看后台的会话:
screen -ls
执行上面的命令你会看到我们挂载到后台的openwrt会话,切换到openwrt会话:
screen -r openwrt
如果你只有一个会话可以省略后面的openwrt,默认进入第一个。

编译后的固件存放路径:*/lede/bin/targets/x86/64

二次编译:
cd lede                进入LEDE目录
git pull
./scripts/feeds update -a 
./scripts/feeds install -a
make defconfig make -j8 download make -j$(($(nproc) + 1)) V=s

如果需要重新配置:

rm -rf ./tmp 
rm -rf .config 
make menuconfig 
make -j$(($(nproc) + 1)) V=s
编译完成后输出路径:/lede/bin/targets 

(二)单独编译插件
Openwrt插件爬墙工具luci-app-ssr-plus.ipk编译三步曲:
进行编译目录lede后
1.摘取更新源码:git pull
2.编译内核:make target/linux/compile V=s
3.编译插件ssr-plus:make package/lean/luci-app-ssr-plus/compile V=s
编译后的ipk文件路径:*/lede/bin/packages/x86_64/base



附:新装Ubuntu需要安装的包

更新软件源
sudo apt-get update

安装opengl
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev

安装vim
sudo apt-get install vim

安装minicom
sudo apt-get install minicom

安裝配置ssh
sudo apt-get install openssh-client
sudo apt-get install openssh-server
sudo /etc/init.d/ssh restart

安裝ncurses
sudo apt-get install ncurse*

安裝git
sudo apt-get install git

安裝makeinfo
sudo apt-get install texinfo

安裝bison
sudo apt-get install bison
sudo apt-get install flex

安装gimp图形处理软件
sudo apt-get install gimp

安装配置tftp服务
sudo apt-get install tftpd-hpa
sudo /etc/init.d/tftpd-hpa restart

安装c++库
sudo apt-get install lib32stdc++6

安装fastboot
sudo apt-get install android-tools-fastboot

安装配置nfs
sudo apt-get install nfs-kernel-server
sudo /etc/init.d/nfs-kernel-server start

安装ctags
sudo apt-get install ctags

安装wireshark
sudo apt-get install wireshark

安装readline(为了sqlite3能够使用方向键)
sudo apt-get -f install libreadline6-dev libreadline-dev

安装zlib
sudo apt-get install zlib1g-dev
sudo apt-get install libx32z1-dev
sudo apt-get install lib32z1

安装unrar
sudo apt-get install unrar

安装tree
sudo apt install tree

安装lftp
sudo apt-get install lftp

安装libmad
sudo apt-get install libmad0-dev

安装7z工具
sudo apt-get install p7zip

安装gstreamer
sudo apt-get install libgstreamer0.10-dev gstreamer-tools gstreamer0.10-tools gstreamer0.10-doc
sudo apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-good

2019年11月2日星期六

看世界-爬墙看井外





一辈子真不容易,尤其是生长在墙内的井底之蛙更不容易,作为普通蛙虽不敢痴心妄想像权贵蛙那样不费吹灰之力肉身逃井逛世界,但通过自身学习通过”潜望镜“探寻世间真善美与假恶丑还是可以实现的。在井底生活太久,从小被权贵蛙用巫术迷魂深入骨髓,已早已没有独立思考和辨别是非的能力,亟待更多了解外面的世界来填补内心的空虚,查找恐惧的根源!为此,需要在许多妖魔鬼怪阻拦你达到这个目标的情况下,找到合适的路径和工具:

一、家庭宽带环境wifi随意fanfan

总体需求主要是实现全家人共享便利、经济实惠、速度快效率高,更能满足部分人使用AppleTV等设备、享受Netflix等服务。


(一)硬路由+VPN。硬路由建议选择国际大品牌如Asus、Netgear等,一般来说价格当然越贵真越好;选择VPN服务商一样不能选择井底产品,要选择国外服务商,如vyprvpn:VyprVPN也是一家著名的国外VPN服务商,VPN服务可用于电脑、手机、平板、路由器等各种设备。VyprVPN拥有世界各地近200个国家的VPN服务器可供连接,在中国使用建议连接其日本的服务器。VyprVPN目前在中国可用,在速度和稳定性方面都表现不凡。而且VyprVPN开发了一种叫做Chameleon的VPN技术,专门用于防止中国等地对VPN的封锁,官网:https://www.vyprvpn.com

(二)软路由+AP+OpenWrt。比前一种方式更好,效率更高,如有时间精力、学习能力和一定动手能力,可自行编译固件、随意刷新固件,享受科技带来的更多便利。这里主要记录分享最新实践,即通过单网口群晖虚拟机安装OpenWrt实现,关键步骤:1.修改光猫为桥接模式并关闭DHCP,只使用千兆网口,修改默认地址192.168.1.1为群晖、AP的同一网段,如192.168.50.2;2.群晖虚拟机中导入Openwrt硬盘镜像IMG文件并安装,修改LAN口、WAN口分别定义绑定为群晖唯一的网口,LAN口“物理设置”中“桥接接口”的勾去掉。


二、终端设备工具任性fanfan

(一)Shadowrocket

(二)Quantumult

(三)Surge


三、必备线路保障稳定fanfan

线路应该要满足稳定、高速、解锁NF等主要需求,亲测推荐两款:

(一)RixCloud,特别推荐,经亲自购买体验实践,跟众多的小机场服务相比,这是贵族啊,稳定节点日常保持近100个,当然价格也高,但质量有保障,不会因为某些特殊敏感时点而出不了井,五星好评!因此很值得拥有,年付近1000元,适合有品味追求的井蛙,美中不足是客服交流渠道鸿雁传书效率低、网络延迟不能满足在线大型游戏需求,不过作为家庭常用选择应该很好了,优惠渠道官网https://xoton.io/aff.php?aff=2600

(二)X-air,曾经用过,价格合适,比前者低很多,效果也不错,日常稳定节点在30个以上,可以通过TG与机场主愉快高效沟通,还有机会可以获取优惠券,优惠渠道官网https://www.x-air.org/register?aff=1009

感兴趣的朋友,欢迎留言交流探讨!


OpenWrt 编译 LuCI ---> Applications 添加插件应用说明

(本文摘自恩山论坛 https://www.right.com.cn/forum/thread-344825-1-1.html ,感谢版主辛劳付出) make menuconfig  进入定制界面 进入编译选项配置界面,.按照需要配置.( ‘*’ 代表编入固件,‘M’ 表示编译成...