ก่อนอื่นการตั้งโดเมนสามารถทำได้ง่าย ๆ ในเครื่องตัวเองให้เป็น client และ server โดยการแก้ไฟล์ hosts ของ OS เช่น
windows: C:\Windows\System32\drivers\etc\hosts
mac และ Linux: /etc/hosts
โดยจะมี text อยู่ประมาณแต่มันก็ไม่สะดวกและไฟล์นี้ไม่ควรให้ใครก็ได้เข้ามาแก้ เพราะว่ามันสามารถชี้ไปเว็บที่ไม่มีอยู่
- ติดตั้ง dnsmasq ให้ติดตั้งก่อนโดย คำสั่ง
brew install dnsmasq
- หาตำแหน่งที่ติดตั้ง dnsmasq ก่อนโดยใช้คำสั่ง
brew info dnsmasq
จะเห็น message กลับมา เช่น
dnsmasq: stable 2.90 (bottled)
Lightweight DNS forwarder and DHCP server
https://thekelleys.org.uk/dnsmasq/doc.html
Installed
/opt/homebrew/Cellar/dnsmasq/2.90 (11 files, 656KB) *
Poured from bottle using the formulae.brew.sh API on 2024-07-17 at 22:11:11
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/d/dnsmasq.rb
License: GPL-2.0-only or GPL-3.0-only
==> Dependencies
Build: pkg-config ✔
==> Caveats
To start dnsmasq now and restart at startup:
sudo brew services start dnsmasq
Or, if you don’t want/need a background service you can just run:
/opt/homebrew/opt/dnsmasq/sbin/dnsmasq –keep-in-foreground -C /opt/homebrew/etc/dnsmasq.conf -7 /opt/homebrew/etc/dnsmasq.d,*.conf
==> Analytics
install: 2,471 (30 days), 7,703 (90 days), 37,343 (365 days)
install-on-request: 2,400 (30 days), 7,485 (90 days), 35,956 (365 days)
build-error: 1 (30 days)
จะเห็นข้อมูลสำคัญ 3 จุดคือ- เวอร์ชั่นที่ติดตั้ง 2.90
- อยู่ที่ /opt/homebrew/opt/dnsmasq/sbin/dnsmasq
- ไฟล์ config คือ /opt/homebrew/etc/dnsmasq.conf
- Create directory for configuration and set permissions
sudo mkdir -pv /opt/homebrew/etc/dnsmasq.d
sudo chown -R $(whoami):admin /opt/homebrew/etc/dnsmasq.d
- Create a resolver directory โดยใช้คำสั่ง
mkdir /etc/resolver
- Create the resolver file โดยใช้คำสั่ง
sudo touch /etc/resolver/internal
- Pipe the localhost IP address
127.0.0.1
into the resolver file โดยใช้คำสั่งsudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/internal'
โดยเนื้อหาในไฟล์/etc/resolver/internal
คือ
nameserver 127.0.0.1 - start โดยคำสั่ง
sudo brew services start dnsmasq
- จะเพิ่ม URL เทสของเราได้โดยใช้คำสั่ง
echo 'address=/{ URL }/127.0.0.1' > $(brew --prefix)/etc/dnsmasq.d/development.conf
echo 'address=/api.plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf echo 'address=/backend.plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf echo 'address=/dev.plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf echo 'address=/frontend.plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf echo 'address=/phunsanit.plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf echo 'address=/pitt.plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf echo 'address=/plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf echo 'address=/www.plusmagi.internal/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.d/development.conf
- โดยจะเป็นการบันทึกในไฟล์ /opt/homebrew/etc/dnsmasq.d/development.conf ตามตัวอย่าง
address=/api.plusmagi.internal/127.0.0.1 address=/backend.plusmagi.internal/127.0.0.1 address=/dev.plusmagi.internal/127.0.0.1 address=/frontend.plusmagi.internal/127.0.0.1 address=/phunsanit.plusmagi.internal/127.0.0.1 address=/pitt.plusmagi.internal/127.0.0.1 address=/plusmagi.internal/127.0.0.1 address=/www.plusmagi.internal/127.0.0.1
- test โดยใช้คำสั่ง
sudo brew services stop dnsmasq
sudo dnsmasq --test
sudo brew services start dnsmasq
sudo killall -HUP mDNSResponder
- Test DNS resolution
dig pitt.plusmagi.internal @127.0.0.1
ping pitt.plusmagi.internal
scutil --dns
อ่านเพิ่มเติม