NAS 入坑系列七、同域名支持内外网访问
安装 dnsmasq
我家有公网 IP,所以很轻松的配置好了域名。但是对于看电影或者备份的场景,希望在外面的时候可以使用公网 IP 访问,在家的时候时候使用内网 IP 访问。
我目前的方式是配置了两个泛域名,*.pub.mynas.com
,*.pri.mynas.com
,前者配置公网 IP,后者配置内网 IP。这样可以使用,但是比如在使用 jellyfin 时,往往需要我手动退出去切换域名。
因此决定搭建一个 DNS 服务,来内网场景下讲域名指向内网 IP。
docker 配置
现在服务我基本都使用 docker-compose 了
docker-compose.yaml
version: "3.8"
services:
dnsmasq:
image: jpillora/dnsmasq
container_name: dnsmasq
environment: # 登陆的账号密码
HTTP_USER: admin
HTTP_PASS: admin
volumes:
- ./dnsmasq.conf:/etc/dnsmasq.conf:ro
- ./dnsmasq.resolv.conf:/etc/dnsmasq.resolv.conf
- ./dnsmasq.d:/etc/dnsmasq.d
- /etc/localtime:/etc/localtime:ro
ports:
- "53:53/udp"
- "53:53/tcp"
- "5380:8080"
restart: always
dnsmasq.conf
#dnsmasq config, for a complete example, see:
# http://oss.segetech.com/intra/srv/dnsmasq.conf
#log all dns queries
log-queries
#dont use hosts nameservers
no-resolv
#use cloudflare as default nameservers, prefer 1^4
server=1.0.0.1
server=1.1.1.1
server=/taobaocdn.com/223.5.5.5
server=/taobao.com/223.5.5.5
server=/aliyun.com/223.5.5.5
server=/github.com/223.5.5.5
server=/baidu.com/180.76.76.76
server=/qq.com/119.29.29.29
server=/tencent.com/119.29.29.29
server=/google.com/8.8.8.8
server=/google.com.hk/8.8.8.8
address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1
#serve all .company queries using a specific nameserver
#server=/company/10.0.0.1
#explicitly define host-ip mappings
address=/pub.mynas.com/192.168.1.100
# IP反查域名
bogus-priv
# 缓存条数,默认为150条,cache-size=0 禁用缓存。
cache-size=4096
# 不缓存未知域名缓存,默认情况下dnsmasq缓存未知域名并直接返回为客户端。
no-negcache
# 指定DNS同属查询转发数量
dns-forward-max=256
# 严格按照resolv.conf中的顺序进行查找
strict-order
# 向所有上游服务器发送查询,而不是一个
all-servers
# 重启后清空缓存
#clear-on-reload
resolv-file=/etc/dnsmasq.resolv.conf
log-queries
#log-facility=/var/log/dnsmasq.log
log-facility=/dev/null
log-async=20
这里有个重点配置,这里 192.168.1.100 是我的 nas 的 IP。
address/pub.mynas.com/192.168.1.100
dnsmasq.resolv.conf
nameserver 223.5.5.5
nameserver 180.76.76.76
nameserver 8.8.8.8
测试
dig home.pub.mynas.com.pub
这个命令应该看到的是公网的 IP。
dig @192.168.1.100 home.pub.mynas.com
这样看到的应该是内网 IP。
修改路由器
然后将路由器的 DNS 改成 nas 的 IP,可以第一个配置成 nas 的,后面继续配置以前的。
Read other posts