本帖最后由 861078848 于 2020-1-1 21:21 编辑
自用笔记备份 笔记地址:N1安装Docker版openwrt做主路由、并结合Pihole配置smartdns做主DNS
本地环境一、N1安装armbian5.9.1
二、安装docker
三、docker下安装Pihole容器、openwrt容器
四、Pihole 配置
五、smartdns配置
六、硬件设备/连接方式
一、N1安装armbian5.9.1A.刷回电视盒子系统 1.先把USB对公线链接到电脑USB口与N1的第二个口(靠HDMI口),N1不要通电。
2.打开USB_Burning_Tool,导入固件WEBPAD大的2.2的线刷包,验证通过后,出现开始字样
3.勾选擦除FLASH,不要勾选擦除bootloader,USB_Burning_Tool点击开始运行刷机,3秒钟内速度让N1通电。
4.USB_Burning_Tool开始正常识别N1线刷模式,刷机开始。
5.烧录完成后,拔电重启,N1恢复了原来的样子,可以正常ADB连接,进入线刷,重新安装ARMBIAN。
B.刷armbian系统到U盘 1.用Win32DiskImager.exe工具先刷入Armbian_5.91_Aml-s905_Debian_buster_default_5.1.15_20190710.img到U盘。
2.将meson-gxl-s905d-phicomm-n1-k510-snail.dtb放入u盘中dtb文件夹呢
3.修改uEnv.ini:
dtb_name=/dtb/meson-gxl-s905d-phicomm-n1-k510-snail.dtb
C.进入线刷模式 1.路由器中找到类似:FC:7C:02:EA:33:32的MAC对应的ip地址。
2.然后进入线刷模式,成功进入线刷马上插入U盘,等待系统开机。
D.将系统刷入N1的emmc 进入armbian系统:帐号:root,密码:1234
执行:/root/install.sh
reboot,断电重启
二、安装dockerA.修改成国内源 nano /etc/apt/sources.list deb http://mirrors.ustc.edu.cn/debian stretch main contrib non-freedeb http://mirrors.ustc.edu.cn/debian stretch-updates main contrib non-freedeb http://mirrors.ustc.edu.cn/debian stretch-backports main contrib non-freedeb http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main contrib non-free
B.更新软件源 apt-get update
C.安装docker
D.设置docker开机自启动 systemctl start docker
三、docker下安装Pihole容器、openwrt容器A.准备工作,设置网络环境 1.设置宿主机网络
vi /etc/network/interfaces auto eth0iface eth0 inet manualauto macvlaniface macvlan inet staticaddress 192.168.1.3netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 192.168.1.1pre-up ip link add macvlan link eth0 type macvlan mode bridgepost-down ip link del macvlan link eth0 type macvlan mode bridge
vi /etc/resolv.conf # Generated by NetworkManagersearch lannameserver 192.168.1.1设置不可更改 : chattr +i /etc/resolv.conf
设置macvlan网卡,首次需要设置,以后不需要设置
ip link set eth0 promisc on
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet
B.安装Pihole docker pull pihole/pihole
docker run -d --name pihole --network macnet --ip 192.168.1.5 -e TZ="Asia/Shanghai" -v /mnt/pihole/pihole/:/etc/pihole/ -v /mnt/pihole/dnsmasq.d/:/etc/dnsmasq.d/ --dns=127.0.0.1 --dns=192.168.1.1 --restart always pihole/pihole:latest
设置密码:docker exec -it pihole pihole -a -p
注意:不要汉化,汉化之后无法设置dns地址#端口。
首次启动比较慢,需要等待10-15分钟,才能打开192.168.1.5管理页面。
C.安装openwrt 1.这边感谢梁非凡大神,使用梁非凡大神12月5日发的docker版openwrt镜像
2.将镜像openwrt-armvirt-64-default-rootfs.tar.gz上传到当前目录下,注意gz压缩格式
3.导入镜像:docker import openwrt-armvirt-64-default-rootfs.tar.gz openwrt:R9.12.5
4.运行容器:docker run --restart always --name openwrt -d --network macnet --privileged openwrt:R9.12.5 /sbin/init
5.进入openwrt容器: 获取openwrt对应的容器ID:docker ps
docker exec -it a19748c95b15 /bin/bash
6.设置openwrt容器的IP地址,vi /etc/config/network,N1拨号下面的user改你的宽带账号,password改你的宽带密码。 config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0'config interface 'lan' option ifname 'eth0' option proto 'static' option netmask '255.255.255.0' option ipaddr '192.168.1.1' option gateway '192.168.1.1' option dns '223.6.6.6 119.29.29.29 114.114.114.114 180.76.76.76'config interface 'wan' option ifname 'eth0' option username 'user' option password 'password' option ipv6 'auto' option metric '40' option proto 'pppoe' option delegate '0'6.设置防火墙,vi /etc/firewall.user # This file is interpreted as shell script.# Put your custom iptables rules here, they will# be executed with each firewall (re-)start.# Internal uci firewall chains are flushed and recreated on reload, so# put custom rules into the root chains e.g. INPUT or FORWARD or into the# special user chains, e.g. input_wan_rule or postrouting_lan_rule.iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53iptables -t nat -I POSTROUTING -o pppoe-wan -j MASQUERADE
四、Pihole 配置A.设置dns服务器#端口 1.浏览器打开192.168.1.5,登录后台。
2.DNS中自定义设置为192.168.1.1#6053,这个ip和端口对应openwrt的ip和smartdns设置的端口。
五、smartdns 配置A.局域网内DNS解析流程,分主路和备用两条DNS解析,并且两条dns线路独立,smartdns不做dnsmasq的上游服务器。主DNS出现问题时,备用DNS自动生效。 1.局域网主DNS解析流量:设备(手机、电脑等)-->PiHole(192.168.1.5)-->smartdns(192.168.1.1#6053)
1.1 smartdns会返回最快的解析结果
1.2 smartdns添加上游服务器,注意不要添加国外dns服务器,只添加国内dns服务器,如阿里云dns服务器(223.6.6.6)
1.3 另外添加本地dns(127.0.0.1),本地dns非常重要,如果不添加这条,当解析国外域名时,解析出来的ip是对于运营商ip响应最快的ip地址,例如www.google.com解析出来的对于本地运营商最快的ip地址(172.217.160.78美国IP),当实际访问网站时:本地运营商-->乳酸菌饮料服务器(HK)--->目标IP(172.217.160.78美国IP),乳酸菌饮料服务器到目标IP的速度并不是最快的,影响访问速度。如果添加上本地dns:那么当解析国外域名时,乳酸菌饮料会根据vps对于目标网站解析出响应最快的ip地址(172.217.24.196深圳旁边IP)。当实际访问网站时:本地运营商-->乳酸菌饮料服务器(HK)--->目标IP(172.217.24.196深圳旁边IP),此时访问速度会比较快。
2.局域网备用DNS解析流量:设备(手机、电脑等)-->openwrt(192.168.1.1#53)
2.1 主DNS失效或出错时,备用DNS会自动生效
2.2 备用DNS就是原本的dns,因为smartdns并没有做dnsmasq的上游服务器,因此即便smartdns出问题时,备用dns也不会受任何影响。
2.3 备用DNS国外流量自动走乳酸菌饮料,国内流量不走乳酸菌饮料。
B.局域网内DHCP自动分配给设备主用、备用两条DNS记录 192.168.1.5为主DNS,192.168.1.1为备用DNS。
C.smartdns配置截图及其他配置图 只修改基本设置和上游服务器,其他地方不做修改
乳酸菌饮料不修改,不做DNS转发器
D.smartdns配置结果测试 1.主用、备用DNS国内流量解析结果
2.主用、备用DNS国外流量解析结果
六、硬件设备设备:斐讯N1、水星千兆交换机、移动光猫、腾达AC23
斐讯N1:armbian、openwrt、pihole
移动光猫:桥接
腾达AC23:AP
路由连接方式:光猫lan口连接交换机、斐讯N1连接交换机、腾达AC23的wan口连接交换机。 注意事项:所有设备都在同一个网段
openwrt:192.168.1.1
armbian:192.168.1.3
pihole:192.168.1.5
腾达AC23:192.168.1.6
光猫:192.168.1.2(光猫设置静态IP,并关闭DHCP)
|