To open self-hosted services by memorable names instead of IP addresses and port numbers, give the homelab’s key machines stable DHCP reservations, point local DNS names at an always-on reverse proxy, then configure that proxy to route each hostname to its service and port. In one setup documented by It’s FOSS author Abhishek Prakash, typing jellyfin.internal opens Jellyfin without entering its address or port. The exact addresses and menus below are examples from his network, not universal settings.
Why IP addresses and ports make a homelab frustrating
A bookmark can stop working if a device’s address changes, and a service on a nonstandard port is awkward to enter—especially on a TV remote. The fix is to separate two jobs: DNS turns a name into an IP address, while a reverse proxy uses the requested hostname to choose a service and its port.
Prakash’s setup puts AdGuard Home in charge of local DNS rewrites and Nginx Proxy Manager (NPM) in charge of routing requests. For each service, a DNS rewrite sends its name to the proxy host; an NPM rule forwards that hostname to the service’s actual address and port. DNS by itself does not select a port.
What the setup needs
- A stable address for the infrastructure: reserve an IP for the machine running local DNS and the reverse proxy. Reserve backend devices too when proxy rules point directly to their addresses.
- A local DNS resolver that clients actually use: the resolver must be reachable whenever devices need to look up private names.
- A reverse proxy for services sharing an IP: NPM can route different hostnames to different backend ports on the same host.
- A client on the configured home network: names ending in
.internalin this design are local, not a remote-access method.
The roles do not require the specific hardware in the example. An existing, capable server can run the software; what matters is that the DNS and proxy host stays powered and reachable. Consider spare capacity, network connectivity, processor architecture, and availability before buying a dedicated machine. The sources establish no power-use or cost comparison.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Step 1: Reserve stable addresses for the important machines
DHCP reservations tell the router to give a device the same address, usually by associating its network identity with an IP. This prevents a DNS rewrite or proxy target from silently pointing to an address that has since been assigned elsewhere. Make sure reserved addresses do not conflict with the router’s dynamic pool; check your own router’s subnet, reservation rules, and lease behavior.
In Prakash’s TP-Link network, the router was 192.168.0.1, the DHCP pool began at 192.168.0.10, and reservations were made for 192.168.0.4 (the always-on ZimaBoard running AdGuard Home and NPM) and 192.168.0.5 (a ZimaCube 2 Pro that was not always on). These values are examples only. After making a reservation, a client may need to renew its lease or reconnect before the new address takes effect.
Keep the resolver and proxy on a reliably powered host: if clients depend on that machine to resolve names or route web requests, they depend on its availability too.
Step 2: Make local DNS available to your clients
AdGuard Home is the local resolver in this example. A router can either forward clients’ DNS requests to AdGuard or, if its DHCP settings allow it, hand out AdGuard’s address directly as the DNS server. With forwarding, AdGuard may log the router as the requester; handing out the resolver directly can make individual clients visible in its query log.
Recommended Free Tools
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Be cautious about configuring a public secondary DNS server alongside the local resolver. Client resolver behavior varies: some devices may send a request to the secondary server without waiting for the primary to fail. A public resolver will not know a private .internal rewrite, so a client that uses it for that request may fail to resolve the name. Confirm that the devices you care about are using the intended local resolver rather than assuming every device treats the secondary as a strict standby.
Check the active resolver on Linux
Prakash found that changing DNS manually did not affect his active Linux connection until he reconnected to Wi-Fi. He used resolvectl status to inspect resolver state. On a system using NetworkManager, the following commands set DNS for a connection and then bring it down and back up; replace the connection name and resolver address with your own values:
nmcli connection show
nmcli connection modify "YOUR_CONNECTION_NAME" ipv4.dns "YOUR_ADGUARD_IP"
nmcli connection down "YOUR_CONNECTION_NAME"
nmcli connection up "YOUR_CONNECTION_NAME"
These are NetworkManager commands, not a universal Linux procedure. Check the active connection and verify the resulting DNS configuration on your distribution.
Step 3: Create a local DNS rewrite for each service
In AdGuard Home, the example uses Filters → DNS rewrites. Add a hostname and the IP address to which it should resolve. For the shared-host arrangement here, that address is the reverse proxy host—not the backend service’s port.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Prakash uses jellyfin.internal as an example name and points it at the proxy host. The suffix .local is associated with multicast DNS systems such as Bonjour and Avahi and can behave inconsistently in this kind of setup. His article describes .lan and .home as names that could become real domains, identifies .home.arpa as an official alternative, and reports that ICANN reserved .internal for private networks in 2024. These suffix notes are the article’s explanation; the reservation claim is not independently established by the sources cited here.
A rewrite only resolves a name to an address. If Jellyfin and Home Assistant use different ports on the same machine, DNS cannot tell those requests apart; the proxy rule handles that distinction.
Step 4: Configure Nginx Proxy Manager to route hostnames
NPM listens for web traffic and selects a proxy host based on the requested hostname. Its rule then forwards the request to the backend address and port. The NPM administrative interface is separate from the service-facing HTTP and HTTPS listeners.
For jellyfin.internal, Prakash’s example rule forwards to the Jellyfin backend on port 8097. The DNS rewrite sends the name to the proxy host; the proxy rule maps the name to that backend. For another service, create its own rewrite and proxy-host rule, using that service’s actual port. If the backend runs on another device, use its reserved or otherwise stable address.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
The official NPM setup page, checked 2026-10-03, shows Docker image jc21/nginx-proxy-manager:2.16.0 and example port mappings 80:80 for HTTP, 443:443 for HTTPS, and 81:81 for the admin interface. It lists amd64 and arm64 support; armv7 is no longer supported from version 2.14 onward, with version 2.13.7 noted for users who need that architecture. Check the official page for current setup instructions before deploying, since versions and support can change.
The NPM homepage describes proxy hosts, a configuration interface, Docker, and built-in Let’s Encrypt support. Those capabilities do not mean local .internal HTTPS is already configured. Prakash left SSL unconfigured for his local names and described HTTPS as future work; his setup therefore demonstrates local HTTP naming and routing, not working HTTPS certificates.
Step 5: Test access and diagnose failures
Test a service directly on its backend address and port, then test it through its hostname. That isolates whether the service itself is reachable or whether DNS, proxy routing, or service trust settings are the problem.
When a name does not resolve
- Verify the rewrite’s hostname and IP address, and confirm the address is still assigned to the proxy host.
- Check that the client is using the local resolver; a device that bypasses it or sends the request to a public fallback may not know the private record.
- Reconnect or renew the client’s network lease after changing router or DNS settings, then inspect resolver state where the operating system provides that information.
When the proxy cannot connect or another app owns a port
Check which process is listening before changing NPM’s intended listener. On Linux, ss can show listening sockets; docker ps shows running containers and their port mappings. Prakash found port 80 already occupied by a host dashboard, moved that dashboard to port 8888, and rebooted after an installer continued to report the old conflict. That was a platform-specific fix, not a reason to move another service without identifying the process first.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
When direct access works but the proxy returns an error
Home Assistant worked directly for Prakash but returned 400: Bad Request through NPM until the proxy was explicitly trusted. Follow the service’s own trusted-proxy guidance and use a narrowly correct address or network range. Container IP addresses can change when containers are recreated, so a trust rule based on an old address may stop working; avoid broad trust settings that do not match the actual network.
When an app stops connecting after enabling filtering
Prakash reports that AdGuard filtering interfered with a Netflix TV app because telemetry hostnames were blocked; allowlist rules resolved his case. This is a report about his setup, not evidence that every AdGuard installation blocks Netflix or that his allowlist rules are suitable for other networks. Inspect the resolver’s query and filtering logs for the affected device before allowing a domain.
What this setup does—and does not—solve
The names in this design resolve only for clients using the configured home-network DNS. A reverse proxy does not make a private hostname reachable from outside the home. Remote access is a separate choice; Prakash names a VPN approach such as Tailscale. Decide how external access should work independently, rather than exposing services on the assumption that local DNS or NPM provides remote access.
The choice of NPM over another proxy is also situational. Prakash chose it over Caddy because it was available as a one-click ZimaOS app and had a web interface. That explains his convenience choice, not a measured performance or security advantage. Router-managed records may be simpler when a router supports the needed local DNS features; a dedicated resolver such as AdGuard Home offers the rewrite controls and query logs used here, but adds a service that must stay available.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsPrakash describes the result in his own setup: “Now I just type jellyfin.internal in the browser. No IP, no port number.” It is a useful pattern for the same annoyance, provided the network, resolver, proxy, and service-specific settings are adapted to the reader’s environment.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




