写在前面
我的网件路由器拿来当AP用了,所以没法使用梅林固件的插件进行魔法上网。手机电脑都还好,但是ns就比较蛋疼了,不挂代理下载慢的跟蜗牛一样,而且不知道为什么国内的一些dns会把ns访问的域名解析到美帝的节点去,所以就想了这么一出。(题目又臭又长请见谅)
准备工作
硬件
- 树莓派4b(别的也行,反正差不多)
- 陈年MacBookAir
- Windows电脑一台(下面我会解释为什么有Mac还要加台Windows的电脑)
- 网线一根
- sd卡一张(大小随意,我用的是闪迪64gb A1的卡)
- 读卡器
- 树莓派对应充电线(4是type-c,之前是microUSB)
软件
~~分享站暂时下线,目前有点小问题 ~~已重新上线
烧录系统
这一步其实很简单,把上面提到的Ubuntu的固件下载下来,然后在balenaEtcher中就可以一键刷入。
我的Mac不知道为什么这个软件用不了,正好家里有另一台笔记本能用就懒得折腾了。
Select image
那选中我们所要烧录的固件–>Select drive
选中我们所要烧录到的sd卡(做这一步的时候建议把别的什么储存卡之类的拔掉,并仔细确认选中的是对的。不要问我为什么)–>点右边的flash等待完成刷入。
树莓派开机及使用
将sd卡插到树莓派上,接上网线,插上供电线即可
等待网口的黄灯闪烁说明已将成功了
这时候我们需要登陆到路由器管理页面查看树莓派的ip(如果是动态ip的话需要将树莓派ip固定下来)
我的树莓派内网IP是192.168.1.149
在ssh工具里填写好IP,同时使用的用户名是ubuntu
,默认密码为ubuntu
。第一次连接后会要求强制更改密码。
在接下去使用的过程中,需要使用root用户,请使用sudo -i
将自己的用户更改为root
首先需要更改源,因为Ubuntu的官方源在国内还是比较慢的(后面还会降到更慢的)
替换源
这里我们需要将文件中的所有源的地址更改为国内源的地址
按i开启编辑模式,将文件中的所有网址替换为以下任意一种
中科大源
阿里云源
163源
清华源
结束后按esc
退出编辑模式并输入:wq
保存并退出
修改后更新源
搭建本地DNS服务器
搭建本地DNS服务器使用的是Dnsmasq
安装Dnsmasq
配置Dnsmasq
dnsmasq.conf
打开配置文件
按i打开编辑模式
去掉strict-order前面的#号
设置listen-address,配置如下:
修改缓存大小(就在目前打开的文件中添加以下内容即可)
resolv.conf
打开文件
添加上游dns,格式如下
查询顺序自上而下,可以多添加几个上游DNS地址
按esc
退出编辑模式
输入:wq
保存并退出
启动
启动
查看运行状态
没有报错就说明安装成功了
搭建透明代理
这里我们使用的是大名鼎鼎的clash
安装clash
找到armv7
的包,复制链接并使用wget
下载到机器(个人建议用能魔法上网的电脑先下载好之后上传到树莓派上,这里不介绍怎么传了)
配置文件
配置文件怎么来的不解释,这里默认大家已经有配置文件了。
假设我们手上有一个配置文件(文件名为a.yaml
,文件路径为/home/clash/a.yaml
),且目前我们处于/home/clash
这个文件夹中
重命名配置文件
打开并修改配置文件
将文件中的这两个配置修改成如下
保存并退出
启动clash
无错误输出的就是成功了
守护程序
这里介绍service,也可以选用pm2(推荐)
在文件中添加如下内容
要注意ExecStart=/usr/local/bin/clash -d /home/clash
这行使用的命令,如果按我的教程做的不需要修改,如果配置文件位置不一样的请自行做调整
启动
查看运行状态
开机自启
小结
这样就完成了clash的设置,局域网内的设备就可以通过配置文件里设置的端口设置代理进行魔法上网了。(默认http是7890,socks是7891,请自行查看配置文件设置的端口)
想要外网访问的话需要路由器支持端口转发,请自行设置。
这里不介绍web管理页面怎么弄了,非常简单,GitHub上把文件下载到电脑点开文件夹里的index.html
文件就能用(管理页面会要求填ip和端口号,ip是树莓派内网ip,端口号是之前在修改配置文件时提到的external-controller: 0.0.0.0:9090
这里的9090)。
使用cloudflareAPI实现DDNS
事情是这样的,本来我想弄完上面两样就收工的,然后想想得折腾折腾让外网也能正常访问。但我家宽带是动态ip我使用的主路由是TP-LINK的企业级路由,虽然支持使用ddns但是只能使用固定那几家的(花生壳啥的),但我不想用。正好我有域名,且是cloudflare托管,就使用cloudflare的api来实现ddns。
这里使用到的脚本来自这位大神的这篇文章(利用 CloudFlare API 实现自动 DDNS 功能|支持IPv4|IPv6),我家是IPv4所以我去掉了IPv6的内容,如需要请前往原文查看IPv6相关设置,这里就不多介绍了。
脚本
使用方法
先确定自家宽带目前的公网ip,并添加到CloudFlare的DNS记录中(不要打开CDN)
并在概述处找到api,获取Global API Key
的秘钥
制作脚本
填入上面提到的脚本,并将上面有中文的四行依次填入中文所示的信息后保存并退出。
执行
如果下面这个输出了宽带公网ip或显示ip为改变则说明成功了
定时运行
我家路由器每天四点重启,所以每天四点都会更新IP,我们需要做的就是让脚本定时运行,保证实时更新。
第一次执行会显示让你选择使用的编辑工具,填对应数字并回车就行,我选择的是2(vim)
接着的操作和之前使用vim完全一样
这里我们填入以下命令
即每天五点运行一次脚本(具体含义可参考这篇文章)
保存并退出
重启程序
完成。
后记
折腾完了我也身心舒畅了,你说折腾这个有啥用其实也真没什么用。但也算是学到了不少新的知识吧。
写这篇文章花了我两个小时,从晚上八点半写到晚上十点半,真的累。创作不易,欢迎大家支持和资瓷。