GL-RM10 (Comet Pro) — console unreachable over IPv4 while the device is fully healthy

Summary

After some period of uptime, the GLKVM web console becomes unreachable over IPv4 — the URL simply times out. The device is not down: its Wi-Fi link, kernel, and every service remain fully healthy, and the console is still reachable over IPv6 on its link-local address.

Because the device continues to answer ARP, it still appears "present" on the network, which makes this look like a hung or crashed appliance. It is not.

Environment

Item Value
Device GL-RM10 (Comet Pro)
Firmware 1.10.0 release4 when the fault occurred; 1.10.1 installed afterwards (see Firmware status below)
Network path Wi-Fi only (5 GHz), no Ethernet connected
Addressing DHCP with a static reservation on the router
Client used for diagnosis Linux, same L2 segment

Symptoms

  • https://<KVM-IP>/ times out. HTTP and HTTPS both fail.
  • ping <KVM-IP> → 100% packet loss.
  • The device looks powered and healthy otherwise (video passthrough works, touchscreen responds).
  • Recovery previously required a physical power cycle.

Diagnosis

1. The device is present at layer 2

ARP resolves promptly and consistently (~2 ms), and re-resolves correctly after the local neighbor entry is deleted. The router also holds a valid ARP entry for the device.

2. Nothing above layer 2 responds — IPv4

Packet capture while probing shows:

  • ICMP echo requests → no reply
  • TCP SYN to 443 and 80 → no reply, no RST (timeouts, not refusals)
  • UDP mDNS (5353) and DNS (53) → no reply

No TCP RST is significant: a refused connection would prove a live IP stack with no listener. Silence means the IPv4 input path is not processing packets at all.

3. It is not a client or router problem

Two independent IPv4 clients fail identically — a host on the LAN and the router itself. Other wireless clients on the same LAN are reachable normally from the same client, ruling out client isolation or an ACL.

4. IPv6 is completely unaffected

The device's IPv6 link-local address answers normally:

  • ICMPv6 echo → 0% loss
  • TCP 443 → open, serves the full GLKVM web app (HTTP 200, main JS bundle loads in full)
  • Protected API paths → correct 401 while unauthenticated
  • TCP 22 → open
  • TLS certificate and fingerprint unchanged from before the fault

So the kernel, the network driver, and every application service are alive. Only IPv4 forwarding/input has stopped.

Why this matters

The combination "ARP answers + IPv4 silent" is easy to misdiagnose as a hung device, which pushes people to a physical power cycle. That is unnecessary, and on this device a long press of the physical reset button erases the configuration.

Workaround: reach the console over IPv6

From any machine on the same L2 segment, open the link-local address. In a browser the zone separator must be percent-encoded:

https://[<KVM-IPV6-LINK-LOCAL>%25<interface>]/
  • <interface> is the client's interface name on Linux (e.g. eth0, en0) or the interface index on Windows (e.g. %2).
  • No router IPv6 support is needed — the address is link-local.
  • Verify the TLS fingerprint against the value you recorded previously before logging in.

From there the console works normally, and the IPv4 path can be recovered by a soft reboot from the UI or by fixing the network state via Toolbox → Terminal — no physical access required.

To find the device's link-local address before you can reach it: it is EUI-64 derived from the device MAC, so fe80:: + the MAC with the 7th bit flipped and ff:fe inserted in the middle.

Firmware status

The fault occurred on 1.10.0 release4. The device was subsequently rebooted and updated to 1.10.1 (released 2026-09-28), which is the current release for this model.

The 1.10.1 changelog is cumulative — it repeats the 1.10.0 items and adds a single new line, "Added two-way video support." It contains no network, IPv4, or connectivity fix. So this behaviour is not addressed by upgrading, and the reboot that restored connectivity is the mechanism that recovers it.

Getting the release information right is itself a trap: the vendor's docs page and search-engine snippets both lag behind the actual release. The authoritative source is the machine-readable release record — for this model, rm10.release.version in the firmware overview API — and a docs snippet should never be quoted as the current version.

Log evidence and a standing defect

The appliance's own log export (Help → Export Log Files) confirms the version from the device side — RK_MODEL=RM10, RK_VERSION=V1.10.1 release2 after the update, V1.10.0 release4 before it.

Worth knowing: the device retains only one previous boot in its log buffer (logread_last_boot). Rebooting to recover destroys the fault window. On this occasion the reboot happened before the logs were exported, so the onset was lost — a sequencing problem, not a data problem. Export the log archive while the device is still wedged, then reboot.

The export did surface a defect that persists across both firmware versions:

connmand: Interface wlan0 [ wifi ] IPv4 online check to
  http://ipv4.connman.net/online/status.html failed: no valid proxy

The Wi-Fi service reports Proxy = [ URL=, Method=auto ] with Proxy.Configuration = [ ] — method auto with an empty PAC URL — so every online check fails and the interface is never marked online.

This is offered as the leading hypothesis, not a proven cause, for the reason above: the onset was lost to the reboot. It is worth checking because connman is the only network manager on the device (there is no udhcpc, dhcpcd, or dhclient process — connman performs DHCP itself), the firmware advertises Wi-Fi/Ethernet failover behaviour, and a connectivity daemon that permanently believes it is offline is a plausible driver of repeated interface reconfiguration. The failure signature — L2 and ARP alive, IPv4 ingress dead, IPv6 untouched — is consistent with IPv4 configuration being torn down and not restored.

Device-side findings from inspecting the appliance directly

Read-only inspection of the device (over its IPv6 link-local path) turned up several things worth sharing, plus two suspects.

A route-managing daemon is running. gl-route-monitor (/usr/sbin/gl-route-monitor, started by /etc/init.d/S99gl-route-monitor when the hardware model reports rm10) was live on the device. Given the fault is a routing/IPv4-stack failure, a daemon whose job is to manage routes is an obvious place to look.

Multi-WAN failover is not a suspect. /usr/sbin/glmwan (S98multi-wan) was not running. This rules out the theory that failover logic moved the default route onto the cable-less Ethernet port.

ps is unreliable on this device — use /proc. ps w lists almost nothing (just the shell), so a ps | grep <name> that returns empty proves nothing. Process names are also truncated to 15 characters, so gl-route-monitor appears as gl-route-monito. Enumerate properly:

for p in /proc/[0-9]*; do printf '%5s %s\n' "${p#/proc/}" "$(cat $p/comm 2>/dev/null)"; done | sort -k2

Init scripts use GL.iNet naming, not the daemon name. The connectivity manager is /etc/init.d/S45connman (which does support restart). There is no /etc/init.d/connman — an easy wrong guess that silently skips a network restart.

A network restart is not risk-free on a Wi-Fi-only unit. Because there is no cable, bouncing the Wi-Fi stack risks leaving the appliance with no network at all — and then no remote access and no remote reboot, which is worse than the original fault. If you build an automated recovery around a network restart, arm a device-side failsafe first: a detached watcher that reboots the unit if the default gateway stays unreachable for a few minutes. Testing the gateway (rather than the console port) means it cannot misfire on the wedge itself, because the device's outbound IPv4 keeps working while its inbound path is dead.

What to capture while it is wedged. If you can still reach the device over IPv6, capture this before rebooting:

ip -4 addr ; ip -4 route ; ip -4 rule ; ip -6 addr ; ip neigh
cat /proc/sys/net/ipv4/conf/*/rp_filter
iptables -L -n -v ; iptables -t nat -L -n -v
connmanctl services ; connmanctl technologies
logread | tail -800 ; dmesg | tail -300

That set is exactly what distinguishes "IPv4 configuration was torn down" from "packets are being filtered", and it is what the reboot destroys.

The device's own connectivity watchdog: /usr/bin/repeater

The appliance ships a daemon that watches connectivity and reconnects Wi-Fi on its own initiative. It is started by /etc/init.d/S80repeater as /usr/bin/eco /usr/bin/repeater, and it was running on the affected unit (confirmed via /proc, since ps is not usable here). Its configuration is /etc/glinet/gl-repeater.conf, whose entire contents are:

{"enable":true}

Its strings reveal what it does:

ping -I wlan0 -c 1 -W 1 <gateway>
ping -I wlan0 -c 2 -W 2 <gateway>
GW_PING_ATTEMPTS        gw_fail_rounds        GW_FAIL_ROUNDS_MAX
ping_ok                 last_reconnect_bssid  auto_reconnect
"rounds, reconnect as last resort"
wpa_cli_disconnect_network

In other words: it pings the default gateway; when that fails enough consecutive rounds, it calls wpa_cli_disconnect_network and re-associates. The only tunable setting is enable — the failure thresholds are compiled in and not exposed to the user.

This matters because of what it is: a component that, on its own judgement, tears down the Wi-Fi link on a device where Wi-Fi is the only link. If a reconfigure of that kind is ever left half-finished, the observable result would be exactly this fault — L2/ARP alive, IPv4 ingress dead, IPv6 link-local untouched.

A closely related report, and an inconsistency worth noting

A separate thread — "Comet Pro reconnects Wi-Fi every 25 s when the gateway doesn't answer ping" (topic 71610, opened 2026-09-27 on V1.10.0 release4, the same firmware as this fault) — identified this same daemon as the cause of periodic Wi-Fi drops:

  • A contributor's advice there was to stop the repeater and rename it as a workaround.
  • GL.iNet's reply was that the feature would be evaluated in future updates.
  • The original reporter's final post states that V1.10.1 release2 fixed it.

That last point is worth flagging: the 1.10.1 changelog contains no network-related entry at all, yet a user reports a network defect being fixed by that release. If 1.10.1 did change repeater behaviour, the changelog should say so — users are making upgrade decisions on it, and a silent network fix is also a silent network change.

Whether the 1.10.1 fix is complete is not something a user can determine from outside, which is precisely why the request below asks GL.iNet to confirm it.

Requests to GL.iNet

  1. Reproduce it. A soak test on a Wi-Fi-only GL-RM10 with the console idle for a long period may surface this. Both of my occurrences followed extended uptime.
  2. Inspect the IPv4 input path on the wedge. Specifically the IPv4 neighbor/route state and any packet filtering applied to the LAN interface, since ARP continues to work while ICMP and TCP are dropped silently.
  3. Add a self-heal. A watchdog that detects "ARP answers but the console's TCP services are unreachable from the LAN" and restarts the network stack would turn a field-site power cycle into an automatic recovery.
  4. Keep services listening on IPv6 and document it. The IPv6 path is what made remote recovery possible here; documenting it as a supported fallback path would help other users.
  5. Log network-state transitions. Any log entry recording the IPv4 interface/route changing state at the moment the console became unreachable would help pin down the trigger.
  6. Fix the connman proxy configuration. The Wi-Fi service ships with Proxy Method=auto and an empty PAC URL, so the online check can never succeed. Setting the proxy method to direct (or supplying a valid PAC URL) would let the interface actually reach an online state. Please also confirm whether a persistently not-online interface can trigger failover reconfiguration on a Wi-Fi-only unit.
  7. Retain more than one previous boot. logread_last_boot keeps exactly one boot back, so a routine reboot erases the evidence of the fault being investigated. Retaining a small ring of prior boots (or letting the user export before rebooting, which is not obvious) would make these reports actionable.
  8. Review gl-route-monitor's interaction with the IPv4 routing table. It was running on the affected unit, and the failure is a routing/IPv4-stack fault. Does it ever remove or reprogram the IPv4 default route, and what happens if it does so while an interface reconfigures?
  9. Provide a documented, safe way to restart only the network stack. On a Wi-Fi-only unit there is no second path, so restarting networking can strand the appliance entirely — which currently makes "reboot" the only safe recovery. A supported, failsafe network restart (or automatic rollback if connectivity does not return) would be a real improvement for remote sites.
  10. Surface the IPv4 wedge state instead of hiding it. The appliance already runs monitors and has a web UI; detecting "my IPv4 stack is not answering inbound traffic" and either self-healing or warning the user would prevent the physical power cycles this report is about.
  11. Make repeater safe on a Wi-Fi-only unit, or make it configurable. Right now it will disconnect the Wi-Fi link on repeated gateway-ping failures, on a device with no other network path, and the only exposed setting is enable. Please confirm (a) what the compiled-in thresholds are, (b) whether a reconnect it initiates can leave IPv4 unconfigured, and (c) whether the 1.10.1 changes to this daemon (reported fixed in topic 71610 but absent from the changelog) close that window. Exposing the thresholds, and arming the reconnect with an automatic rollback or reboot if the interface does not come back, would remove the failure mode entirely.
  12. State network changes in the changelog. If 1.10.1 altered connectivity-monitor behaviour, that belongs in the release notes alongside the video feature. A user upgrading for an unrelated reason is otherwise unaware that their network watchdog changed.

please upload debug log

Thanks for the quick reply. This occurrence is more useful than the first two: the fault was still active 21 hours after it started, so the unit could be inspected in the failed state.

What the device shows while wedged

  • wlan0 is up with carrier and keeps its link-local IPv6 address, but it has no IPv4 address at all - no lease, and not even the subnet broadcast entry: ip -4 addr lists only loopback.
  • There is no default route. The only IPv4 routes left are two orphaned host routes carrying the kernel's dead linkdown flag, which is set when an interface loses carrier - so the interface went down at some point and IPv4 was never rebuilt afterwards.
  • Nothing is filtering: both iptables tables are empty, policy ACCEPT.
  • connman still reports the Wi-Fi service as connected and still holds IPv4.method=dhcp plus the last address, but never re-acquires a lease by itself. It sat like that for 21 hours.
  • Consequence: with no IPv4 address the unit cannot answer ARP for its old address either. Please treat the "ARP still answers" claim in my opening post as unproven - in this occurrence it did not, and what looked like the device was my client's cached neighbour entry. The only surviving management path was IPv6 link-local.
  • Secondary damage: name resolution fails for every client (the cloud client and the STUN client log permanent DNS errors), because there is no IPv4 path and no global IPv6.

Recovery: restarting /etc/init.d/S45connman restored the address in under a minute, with no reboot (uptime unchanged at 2 days 9 h). The state is recoverable in place.

Two things for the record

  • This is on V1.10.1 release2 (RK_VERSION=V1.10.1 release2), so upgrading does not address it. As noted before, the 1.10.1 changelog has no network entry at all, yet the repeater report says 1.10.1 fixed it.
  • The online-check defect is independent and still present after recovery: Proxy Method=auto with an empty PAC URL, so IPv4 online check ... failed: no valid proxy continues on a healthy unit.

Repeating the questions this occurrence sharpens: can a reconnect initiated by repeater (or any other component) leave the interface up but without an IPv4 configuration? Does anything remove or reprogram the IPv4 default route? And can the shipped configuration be changed so the online check can actually succeed?

Note on the log: All addresses, MACs, SSIDs and keys are replaced with placeholders; the rest is verbatim.

gl-rm10-system-logs-20261005_181136-sanitized.zip (112.8 KB)

update: i uploaded the exported log file (sanitized.)

Two things the exported bundle narrows down, in case they help.

1. The onset minute contains no network trace. Around the onset (uptime 129,600 s, Oct 4 20:19) dmesg shows no wlan0, netdev or driver event at all — the only activity is a video stream session starting (1920×1080@60, encoder channels created and destroyed within ~9 s). connmand likewise logs no state change for wlan0 during the entire ~19 h the fault lasted; the first state messages come from restarting connman, which restored connectivity in ~25 s. So IPv4 does not look like it was lost by the link or the driver — it looks like a userspace address/route deconfigure that nothing re-applied afterwards. If any reconnect path can remove the IPv4 configuration without reprogramming it, that would match exactly.

2. Could a DHCP renewal be involved? Our router's lease for the unit renews on a 08:19 / 20:19 cycle, and the onset falls inside the 20:19–20:20 window. With the shipped log level, however, connmand records no DHCP transactions at all — no renew, ACK or lease lines in either boot's log — so the renewal path is not visible to me.

Questions:

  • Should a failed or missed T1 renewal leave the interface up but without an address, with no retry? If so, what is supposed to trigger the retry?
  • Is there a flag or config to get DHCP activity (and the "no valid proxy" / online-check failure) into the log, so the next occurrence is actually captured? That online check has been failing since boot, so the mechanism that should notice a dead IPv4 path never triggers.
  • For reference, the unit sits at load ~8.9 on 4 cores with two console sessions live, so userland timers run under some contention.

It stays reachable over IPv6 link-local while IPv4 is dead, so anything can be grabbed at the next occurrence without a reboot — tell me what you want captured.

Wow that is a lot of ai slop that would take far too long to read.

I assume you are describing a problem I had with my rm10. I saw the device would have no dhcp ip within days when connected to an Asus router but is fine with a gl-inet router.

Many users over the last months have reported gl-inet KVM dropping off the network. When the issue began gl-inet support staff would tell users to set a static IP on the lan interface of the kvm to avoid the problem. Static IP is still the best workaround, or replace the router with a different brand, or downgrade KVM firmware.

My feeling is the dhcp client crashes with certain dhcp servers. Or at least something prevents the dhcp client from working on the device.

The problem began after firmware 1.07 from memory.

Hi, please try updating this firmware. If the issue continues, please send us the syslog.