I just don't get it—why can't the client just let me manually enter the LAN address?

My Windows client and ZimaOS are on the same LAN, but the auto-discovery fails completely. What’s worse is that I can’t even manually enter the local IPv4 address. Are you really forcing me to use a Network ID and go through a ZeroTier virtual NIC just to connect locally? This design logic feels way too aggressive.

You shouldn’t need ZeroTier for a same-LAN connection. Let’s first prove whether this is networking or just broken discovery.

On your Windows machine (PowerShell), run:

ipconfig
ping 10.0.0.xxx
tracert 10.0.0.xxx

Replace with your ZimaOS IP.

If ping fails > this is subnet/VLAN/network.
If ping works > test the service ports:

Test-NetConnection 10.0.0.xxx -Port 80
Test-NetConnection 10.0.0.xxx -Port 443
Test-NetConnection 10.0.0.xxx -Port 9999

(Replace 9999 with the actual client port.)

If ping works but port test fails > firewall issue.
If ports are open > discovery layer is failing, not LAN connectivity.

On ZimaOS (via SSH), run:

ip addr
ip route
ss -tulnp

This confirms the IP, subnet, and whether the service is actually listening.

If all of that checks out, then the issue isn’t networking, it’s the client not allowing direct LAN IP entry or the discovery mechanism not functioning properly.

Let’s verify first, then we escalate properly.

To follow up and provide some hard evidence—I’ve performed a full-stack diagnostic to prove this isn’t a “network issue,” but a “discovery logic” failure. Here is what I’ve verified:

  • Service Layer: Ran ss -tulnp | grep -E '80|443|9527' on ZimaOS. All core services are listening on 0.0.0.0, NOT just localhost.

  • Routing Layer: ip addr and ip route confirm the device is sitting exactly where it should be on the local subnet.

  • Access Layer: From my Windows host, Test-NetConnection 10.0.0.109 -Port 9527 (as well as 80 and 443) returns TcpTestSucceeded: True.

The “pipe” is wide open. I can reach the ports and see the services, yet the client remains blind.

Are you guys relying on Windows NLA (Network Location Awareness) or specific mDNS/Avahi broadcasts that struggle with multi-homed environments? If NLA is misidentifying the network profile, it might be blocking the discovery layer entirely.

Log:

root@ZimaOS:/root ➜ # netstat -tulnp | grep -E '80|443|9527'
tcp        0      0 0.0.0.0:8096            0.0.0.0:*               LISTEN      2903/docker-proxy   
tcp6       0      0 :::80                   :::*                    LISTEN      1177/zimaos-gateway 
tcp6       0      0 :::443                  :::*                    LISTEN      1177/zimaos-gateway 
tcp6       0      0 :::9527                 :::*                    LISTEN      1845/zimaos         
tcp6       0      0 :::8096                 :::*                    LISTEN      2911/docker-proxy   
udp        0      0 0.0.0.0:48066           0.0.0.0:*                           1332/rpc.mountd     
udp        0      0 0.0.0.0:58350           0.0.0.0:*                           800/avahi-daemon: r 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           800/avahi-daemon: r 
udp6       0      0 :::443                  :::*                                1177/zimaos-gateway 
udp6       0      0 fe80::fb39:c26d:9e5:546 :::*                                1152/NetworkManager 
udp6       0      0 :::5353                 :::*                                800/avahi-daemon: r 
udp6       0      0 :::9527                 :::*                                1845/zimaos         
udp6       0      0 :::35170                :::*                                800/avahi-daemon: r 
root@ZimaOS:/root ➜ # ip addr | grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 10.0.0.109/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0
root@ZimaOS:/root ➜ # ip route | grep eth0
default via 10.0.0.1 dev eth0 proto dhcp src 10.0.0.109 metric 100 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.109 metric 100 
root@ZimaOS:/root ➜ # ^C
root@ZimaOS:/root ➜ # 
PS C:\Windows\system32> Test-NetConnection 10.0.0.109 -Port 443


ComputerName     : 10.0.0.109
RemoteAddress    : 10.0.0.109
RemotePort       : 443
InterfaceAlias   : Ethernet0
SourceAddress    : 10.0.0.218
TcpTestSucceeded : True



PS C:\Windows\system32> Test-NetConnection 10.0.0.109 -Port 9527


ComputerName     : 10.0.0.109
RemoteAddress    : 10.0.0.109
RemotePort       : 9527
InterfaceAlias   : Ethernet0
SourceAddress    : 10.0.0.218
TcpTestSucceeded : True



PS C:\Windows\system32> Test-NetConnection 10.0.0.109 -Port 80


ComputerName     : 10.0.0.109
RemoteAddress    : 10.0.0.109
RemotePort       : 80
InterfaceAlias   : Ethernet0
SourceAddress    : 10.0.0.218
TcpTestSucceeded : True

You’re asking two valid things:

• Why can’t I manually enter the LAN IPv4?
• Am I being forced to use ZeroTier even on the same subnet?

Based on your diagnostics, this is not a network failure.

Your ports are reachable.
Routing is correct.
Services are listening on 0.0.0.0.
TcpTestSucceeded: True.

The transport layer is healthy.

Technically, ZimaOS discovery on Windows relies on mDNS (Avahi) and Windows multicast handling. If Windows Network Location Awareness (NLA) classifies the network as Public, multicast discovery can silently fail even though direct TCP works.

So yes — this points to a discovery-layer dependency (mDNS/NLA), not a connectivity issue.

Now the design question:

You should not be forced to use ZeroTier when:

• Both devices are on 10.0.0.0/24
• Ports are reachable
• Services are listening

ZeroTier is meant for cross-network access, not same-LAN fallback.

If manual IPv4 entry is not allowed when discovery fails, that’s a client UX limitation — not a networking requirement.

Your diagnostics prove the pipe is open.
The client simply isn’t using it.


So what’s the solution?

There are three realistic paths:

1 Fix Windows network profile (most common cause)

Run PowerShell as Admin:

Get-NetConnectionProfile

If it shows Public:

Set-NetConnectionProfile -InterfaceAlias "Ethernet0" -NetworkCategory Private

Restart the client.

2 Test mDNS resolution

ping zimaos.local

If that fails but direct IP works, Windows mDNS resolution is failing.
That confirms discovery-layer issue.

3 Bypass discovery

Open directly in browser:

https://10.0.0.109

or

https://10.0.0.109:9527

If that loads, the device is reachable without ZeroTier.


Bottom line:

You do NOT need ZeroTier on the same subnet.
Your logs prove connectivity works.

Either:

• Correct the Windows network profile
• Or the client needs manual LAN IP fallback

Everything else is discovery logic, not networking.