DNS Setup
NuFi is accessed through subdomains such as dashboard.nufi.com and grafana.nufi.com. After installation, you need to configure local DNS on the client PC so that these domains resolve to the NuFi server IP.
This configuration is performed on the client PC that will access NuFi, not on the NuFi server.
Prerequisites
Before you start, prepare the following information.
| Item | Description | How to check |
|---|---|---|
| NuFi server IP | IP of the server (master node) where NuFi is installed | Run ip addr show on the server |
| Network connectivity | Client can reach the server | ping <server IP> |
If ping fails, check that both machines are on the same network and review firewall settings.
Per-OS Setup
- Windows
- macOS
- Linux
1. Check the Current DNS Server
First, identify the existing DNS server IP that will be used as Acrylic's upstream.
Run PowerShell as Administrator.
From the Start menu, search for
powershell→ click Run as administrator
Get-DnsClientServerAddress -InterfaceAlias (Get-NetAdapter | Where-Object Status -eq 'Up' | Select-Object -First 1).Name | Select-Object -ExpandProperty ServerAddresses
Example output:
192.168.10.123
Use this IP in step 5. If no DNS server is found or you can't verify it, use
8.8.8.8(Google public DNS).
2. Install Chocolatey
If it's already installed, skip to step 3.
# Check installation (a version number means it's already installed)
choco --version
# If not installed, run
Set-ExecutionPolicy Bypass -Scope Process -Force
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
3. Install Acrylic DNS Proxy
choco install acrylic-dns-proxy -y
4. Wildcard DNS Configuration
Replace <NuFi server IP> with the actual IP.
$acrylicHosts = "C:\Program Files (x86)\Acrylic DNS Proxy\AcrylicHosts.txt"
$content = Get-Content $acrylicHosts
$content = $content | Where-Object { $_ -notmatch "nufi" }
$content += "<NuFi server IP> *.nufi.com"
Set-Content $acrylicHosts $content -Encoding UTF8
5. Custom DNS Server Configuration (upstream)
Configure Acrylic to forward DNS requests other than *.nufi.com to the existing DNS server.
Replace <existing DNS server IP> with the IP you identified in step 1.
$acrylicConf = "C:\Program Files (x86)\Acrylic DNS Proxy\AcrylicConfiguration.ini"
(Get-Content $acrylicConf) `
-replace 'PrimaryServerAddress=.*', 'PrimaryServerAddress=<existing DNS server IP>' `
-replace 'SinkholeIPv6Lookups=No', 'SinkholeIPv6Lookups=Yes' |
Set-Content $acrylicConf
6. Restart the Acrylic Service
Restart-Service -Name "AcrylicDNSProxySvc"
7. Change Network Adapter DNS
Since Acrylic uses the existing DNS as its upstream, set the network adapter's DNS to Acrylic (127.0.0.1).
$adapter = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' } | Select-Object -First 1
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ServerAddresses @("127.0.0.1")
8. Flush the DNS Cache
ipconfig /flushdns
9. Test
Verify the NuFi domain:
nslookup dashboard.nufi.com 127.0.0.1
Success when the NuFi server IP is printed as shown:
Server: Unknown
Address: 127.0.0.1
Non-authoritative answer:
Name: dashboard.nufi.com
Address: <NuFi server IP>
"Non-authoritative answer" is a normal response from the local DNS proxy.
Verify that regular domains also work:
nslookup google.com 127.0.0.1
Cleanup
When the DNS configuration is no longer needed, clean up in the following order.
You must restore DNS first and then stop Acrylic. If you stop Acrylic first while DNS is still set to 127.0.0.1, you will lose internet connectivity.
# 1. Restore DNS first
$adapter = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' } | Select-Object -First 1
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ResetServerAddresses
ipconfig /flushdns
# 2. Stop the Acrylic service
Stop-Service -Name "AcrylicDNSProxySvc"
1. Install Homebrew
If it's already installed, skip to step 2.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Install dnsmasq
brew install dnsmasq
3. Wildcard DNS Configuration
Replace <NuFi server IP> with the actual IP.
echo 'address=/nufi.com/<NuFi server IP>' >> "$(brew --prefix)/etc/dnsmasq.conf"
4. Start dnsmasq
sudo brew services start dnsmasq
5. DNS Resolver Configuration
Route only the *.nufi.com domain to dnsmasq. Your existing DNS configuration is not affected.
sudo mkdir -p /etc/resolver
echo "nameserver 127.0.0.1" | sudo tee /etc/resolver/nufi.com
6. Test
ping dashboard.nufi.com
Success when the NuFi server IP is printed as shown:
PING dashboard.nufi.com (<NuFi server IP>): 56 data bytes
64 bytes from <NuFi server IP>: icmp_seq=0 ttl=64 time=5.160 ms
Cleanup
When the DNS configuration is no longer needed, stop dnsmasq and delete the resolver file.
sudo brew services stop dnsmasq
sudo rm /etc/resolver/nufi.com
1. Check the Current DNS Server
First, identify the existing DNS server IP that will be used as dnsmasq's upstream.
resolvectl status | grep "DNS Servers"
Example output:
DNS Servers: 192.168.10.1
Use this IP in step 3. If no DNS server is found or you can't verify it, use
8.8.8.8(Google public DNS).
2. Install dnsmasq
sudo apt install dnsmasq
3. Wildcard DNS Configuration
Replace <existing DNS server IP> and <NuFi server IP> with the actual values.
echo 'server=<existing DNS server IP>' | sudo tee -a /etc/dnsmasq.conf
echo 'address=/nufi.com/<NuFi server IP>' | sudo tee -a /etc/dnsmasq.conf
4. Disable the systemd-resolved Stub Listener
sudo sed -i 's/#DNSStubListener=yes/DNSStubListener=no/' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved
5. Point resolv.conf to 127.0.0.1
Since dnsmasq uses the existing DNS as its upstream, set resolv.conf to only dnsmasq (127.0.0.1).
sudo rm /etc/resolv.conf
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
6. Start dnsmasq
sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq
7. Test
ping dashboard.nufi.com
Success when the NuFi server IP is printed as shown:
PING dashboard.nufi.com (<NuFi server IP>): 56 data bytes
64 bytes from <NuFi server IP>: icmp_seq=0 ttl=64 time=5.160 ms
Cleanup
When the DNS configuration is no longer needed, clean up in the following order.
# 1. Stop dnsmasq
sudo systemctl stop dnsmasq
sudo systemctl disable dnsmasq
# 2. Restore systemd-resolved
sudo sed -i 's/DNSStubListener=no/DNSStubListener=yes/' /etc/systemd/resolved.conf
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved