我希望内部局域网里面,通过ds220plus
可以访问到群晖NAS。我用了华硕的官改固件,默认带了jffs。
SSH进入路由器
ssh -o PubkeyAcceptedKeyTypes=+ssh-rsa -i ~/.ssh/ids_rsa your_username@192.168.51.1 -p 22
创建/jffs/dnsmasq.conf.add
文件,内容为addn-hosts=/jffs/configs/hosts
,然后在/jffs/configs/hosts
里添加192.168.51.123 ds220plus
即可。
解析所有*.ds200plus 域名
如果要解析所有*.ds220plus域名,就需要创建/jffs/configs/dnsmasq.d/dnsmasq.conf.add
,内容为address=/.ds220plus/192.168.51.123
即可。
重启生效
运行service restart_dnsmasq
重启dnsmasq生效改动。
为什么.local 域名不行
刚开始想用.local域名,发现Mac等系统已经使用了.local 域名,会导致解析不生效。
搭配Nginx
我也解析了.macmini
域名,这样postgres.macmini
会被解析到我的Mac Mini上的5432端口。Postgres是本机安装,所以用了Mac Mini的5432端口。
如果是安装在容器里面,比如Orb stack里面我跑了两个web应用,都监听了80端口,那就需要使用Nginx。比如,下面的配置就可以将rsbuild.macmini
转发到Orb stack里面的rsbuild容器的8080端口。
server {
listen 80;
server_name rsbuild.macmini;
access_log /var/log/nginx/airflow-access.log;
error_log /var/log/nginx/airflow-error.log;
location / {
proxy_pass http://rsbuild.default.svc.cluster.local:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket support (for Airflow UI)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Timeout settings
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
}
Reference
https://github.com/RMerl/asuswrt-merlin.ng/wiki/Custom-domains-with-dnsmasq