×

docker下安装adguardhome的教程

Falcon 2020-02-28 views:
自动摘要

正在生成中……


1. 如果以前装过docker版的adg,先删除原有容器和相关配置,具体命令如下(以N1为例,贝壳云把 mmcblk1p3 换成 mmcblk0p4 即可):

  1. docker stop adguardhome
  2. docker rm adguardhome
  3. rm -rf /mnt/mmcblk1p3/adguardhome/confdir/*
  4. rm -rf /mnt/mmcblk1p3/adguardhome/workdir/*
  5. # 抓取最新版镜像(需要全局模式)(可选)
  6. docker pull adguard/adguardhome:arm64-latest
  7. # 清理镜像垃圾(可选)
  8. docker image prune -f
  9. # 启动容器(用hostnet)
  10. docker run --name adguardhome \
  11.         -v /mnt/mmcblk1p3/adguardhome/workdir:/opt/adguardhome/work \
  12.         -v /mnt/mmcblk1p3/adguardhome/confdir:/opt/adguardhome/conf \
  13.         --restart always \
  14.         --net host \
  15.         -d adguard/adguardhome:arm64-latest
  16.  
复制代码

2. 如果是第一次安装docker版adguardhome的,具体命令如下(以N1为例,贝壳云把 mmcblk1p3 换成 mmcblk0p4 即可):

  1. # 抓取镜像(需要全局模式)
  2. docker pull adguard/adguardhome:arm64-latest
  3. mkdir -p /mnt/mmcblk1p3/adguardhome/confdir
  4. mkdir -p /mnt/mmcblk1p3/adguardhome/workdir
  5. # 启动容器(用hostnet)
  6. docker run --name adguardhome \
  7.         -v /mnt/mmcblk1p3/adguardhome/workdir:/opt/adguardhome/work \
  8.         -v /mnt/mmcblk1p3/adguardhome/confdir:/opt/adguardhome/conf \
  9.         --restart always \
  10.         --net host \
  11.         -d adguard/adguardhome:arm64-latest
复制代码

之后进入 http://路由器ip:3000/ 初始化设置,设置时需要改两个端口:80(我改成1080),53(我改成1053)初始化完成后,用1080端口即可进入主界面

3. 把adg服务端口(1053)设置为dnsmasq的上游,具体方法:
打开openwrt的"网络“->"DHCP/DNS", "DNS转发"设为  127.0.0.1#1053

4. 双Adg容器用法:adg主要用于国内网站的去广告,至于国外网站, 梯 子软件一般是用pdnsd或基于5335端口的dns,总之,国内dns和国外dns是两套体系,最好不要混在一起(比如,再建一个adg容器专门用于国外dns处理,这样也是可行的)

  1. # 第1个(国内) 80改成1080,53改成1053
  2. mkdir -p /mnt/mmcblk1p3/adguardhome/confdir
  3. mkdir -p /mnt/mmcblk1p3/adguardhome/workdir
  4. # 启动容器(用hostnet)
  5. docker run --name adguardhome \
  6.         -v /mnt/mmcblk1p3/adguardhome/workdir:/opt/adguardhome/work \
  7.         -v /mnt/mmcblk1p3/adguardhome/confdir:/opt/adguardhome/conf \
  8.         --restart always \
  9.         --net host \
  10.         -d adguard/adguardhome:arm64-latest
  11. # 注:此adg的上游dns设成国内比较快的dns, 然后修改dnsmasq的上游dns为 127.0.0.1#1053
  12. #先配置好第1个,再运行第2个,否则3000端口会冲突
  13.  
  14. # 第2个(国外) 80改成1081,53改成5335(需要提前关闭占用5335端口的程序)
  15. mkdir -p /mnt/mmcblk1p3/adguardhome/confdir_gfw
  16. mkdir -p /mnt/mmcblk1p3/adguardhome/workdir_gfw
  17. # 启动容器(用hostnet)
  18. docker run --name adguardhome_gfw \
  19.         -v /mnt/mmcblk1p3/adguardhome/workdir_gfw:/opt/adguardhome/work \
  20.         -v /mnt/mmcblk1p3/adguardhome/confdir_gfw:/opt/adguardhome/conf \
  21.         --restart always \
  22.         --net host \
  23.         -d adguard/adguardhome:arm64-latest
  24. #注:此adg的上游dns设成  tcp://国外知名dns
  25.  
复制代码




5. 比较复杂的用法:另外,如果自己有vps的话,在vps上建一套adg也可以,当然同时也需要开启 dns over https或dns over tls ,并结合openwrt上的smartdns, 这种方案就比较高级了)
高级用法拓扑示例(必须拥有自己的vps):
dnsmasq-> adghome(1053)  (专门处理国内dns,上游dns不要设8888之类的)
梯 子软件 -> smartdns(5335) ---- 用https或tls协议  ---> adghome(在自己的vps上装, 同样采用docker方式,并开启dns加密)(专门处理国外dns, 用caddy申请ssl证书,证书给  caddy、trojan和adg共用)