正好赶上618阿里云活动,大概60一年,真的便宜。可惜只能是新号,只好用母亲大人的手机注册一个了,(号是上午注册的,下午阿里云就打电话过来问我,公司业务是什么扒拉扒拉的,烦死啦!)
以前的方案是本地nas上使用docker部署Adguardhome然后使用frp将服务穿透到公网,但是受限于frp端口的问题只能使用DOH(DNS-over-HTTPS)协议。这个方案在大多数的时间上都是十分好用的,就是偶尔连不上,不是家里停电就是frp服务暂停维护。IOS上DNS一旦解析失败应用就会卡死,闪退,杀后台,总之就是很难受。
这次打算直接上服务器。就图个稳定,还能顺带把 53端口、DNS-over-HTTPS、DNS-over-TLS、DNS-over-QUIC 这些协议都给补全了。
公开的服务:纸盒DNS https://zhebk.cn/DNS.html
本来想使用Portainer来管理docker,试了试总觉得有些麻烦,还不如敲命令。
Nginx在这里放一个单页,用于提示一些信息。
搭建Docker
# 安装依赖
sudo yum install -y yum-utils
# 添加软件源信息
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 更新 yum 缓存
sudo yum makecache fast
# 安装 Docker
sudo yum -y install docker-ce
# 测试(可选)
sudo docker run hello-world
# 启动 Docker 后台服务
sudo systemctl start docker
# Docker 服务开机启动
systemctl enable docker
部署容器
Adguardhome
# 拉 adguardhome 镜像
docker pull adguard/adguardhome
# 安装 adguardhome 镜像
# 这里的端口我按自己需要修改了一下
docker run --name adguardhome \
-v /docker/adguardhome/workdir:/opt/adguardhome/work \
-v /docker/adguardhome/confdir:/opt/adguardhome/conf \
-p 53:53/tcp -p 53:53/udp \
-p 3000:3000/tcp \
-p 443:443/tcp \
-p 853:853/tcp \
-d adguard/adguardhome
nginx
# 拉 nginx 镜像
docker pull nginx
# 安装 nginx 镜像
docker run --name nginx \
-p 80:80 \
-v /docker/nginx/config:/etc/nginx/conf.d \
-v /docker/nginx/html:/usr/share/nginx/html \
-d nginx
这里需要自己建立/docker/nginx/config
、/docker/adguardhome/workdir
、/docker/adguardhome/confdir
、/docker/nginx/html
文件夹
配置文件 default.conf 放到 /docker/nginx/config
把 DNS提示页 放到 /docker/nginx/html
nginx只开80端口放一个单页,类似下面的效果,用js判断那个域名同时实现dns检测的功能。
http://dns.zhebk.cn/ 跟 http://test.zhebk.cn/(这个需要使用纸盒DNS才能打开)
容器自启动
# 自动启动
docker update --restart=always adguardhome
docker update --restart=always nginx
路人甲
可以宝塔上容器安装吗?想界面操作,可惜还是不会
子虚之人
@路人甲 : 可以搞,但是宝塔docker有些参数没有。
小予
666
wkq
厉害了