OpenWRT - 如何將主機名的所有子域重定向到同一主機,以便可以反向代理?
我有一個 OpenWRT 路由器設置,
192.168.1.1
帶有搜尋域local
(與預設設置相反lan
)。我有一個伺服器設置
192.168.1.200
,帶有主機名,server.local
。我有一個工作站,
192.168.1.10
,主機名,workstation.local
。
server.local
還執行 NGINX 反向代理,以提供子域,例如sub.server.local
.如果我的工作站嘗試訪問 ,
server.local
它會正確解析為指向192.168.1.200
。但是,如果我的工作站嘗試訪問
sub.server.local
,它無法解析為192.168.1.200
。如果我的工作站有
192.168.1.200 sub.server.local
, 添加到它的 hosts 文件中,它會正確解析,並且伺服器反向代理將傳入連接路由到正確的埠。我該如何解決這個問題,以便所有子域都
server.local
解析為192.168.1.200
?不必為伺服器上的每個子域為每個工作站添加主機記錄,這顯然是不可持續的。我假設我需要更改我的 OpenWRT 路由器上的一些 DNS 記錄,但是查看 Luci(Web 界面)中的設置,沒有任何東西能夠實現這一點。
有任何想法嗎?
我最終整理出來了。
根據:
https://openwrt.org/docs/guide-user/base-system/dhcp_configuration#a_and_aaaa_rr
其中指出:
這是 –address 選項的實現。在查詢域 home 和子域 *.home 上返回 10.10.10.1。
我能夠登錄到 OpenWRT(使用
ssh root@192.168.1.1
),並執行:uci add_list dhcp.@dnsmasq[0].address="/server.local/192.168.1.200" uci commit dhcp /etc/init.d/dnsmasq restart
然後允許以下工作:
~$ ping www.server.local PING www.server.local (192.168.1.200) 56(84) bytes of data. 64 bytes from server.local (192.168.1.200): icmp_seq=1 ttl=63 time=55.4 ms 64 bytes from server.local (192.168.1.200): icmp_seq=2 ttl=63 time=77.3 ms
還有其他任何事情:
~$ ping hdsjdjk.server.local PING hdsjdjk.server.local (192.168.1.200) 56(84) bytes of data. 64 bytes from server.local (192.168.1.200): icmp_seq=1 ttl=63 time=101 ms 64 bytes from server.local (192.168.1.200): icmp_seq=2 ttl=63 time=124 ms
據我了解,這會在 DNSMasq 中創建一條 A 記錄,它會自動包含所有子域。
這些變化可以在 中看到
/etc/config/dhcp
,現在看起來(部分)如下:config dnsmasq [...] option domain 'local' option local '/local/' list address '/server.local/192.168.1.200' [...]
希望這對將來的其他人有所幫助!