Resolving Sm@rtClient Remote Access on SIMATIC HMI Panels

David Krause11 min read
HMI / SCADASiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Resolving Sm@rtClient Remote Access on SIMATIC HMI Panels

The SIMATIC Sm@rtClient mobile application, paired with the on-device SIMATIC WinCC Sm@rtServer, enables remote operation and observation of Siemens HMI panels from Android and iOS clients. Field engineers frequently encounter connection failures when the HMI sits behind a residential or industrial router that has not been correctly prepared for inbound remote-maintenance traffic. This reference documents the precise configuration, the port semantics for 5900 versus 5800, the IPv4/IPv6 implications, the role of static addressing and dynamic DNS, and the validation procedure that proves the path end-to-end.

Scope: This document covers the SIMATIC KTP400 Basic 2nd Generation (and behaviorally equivalent Comfort / Unified panels that share the same Sm@rtServer firmware interface). Verify your panel's Image version in TIA Portal > HMI > Diagnostics > System Information before applying any of the steps below.

1. Problem Description

The reported fault pattern is reproducible and consistent:

  • The Sm@rtClient app (Android/iOS) connects successfully to the panel while the mobile device is on the same LAN/subnet as the HMI.
  • When the operator leaves the LAN and switches to a cellular or external Wi-Fi network, the Sm@rtClient session terminates immediately, displays "Connection failed", or hangs during the TCP handshake.
  • TCP port 5900 is forwarded on the router, but external port-check services (e.g. canyouseeme.org) report the port as CLOSED.
  • The router runs in IPv6 mode by default, while the panel is configured with an IPv4 address.

Each of these symptoms points to one or more layers in the network stack not being aligned with the assumptions the Sm@rtServer expects.

2. Architecture: How Sm@rtClient Reaches the Panel

Understanding the data path is essential before changing any router setting. The complete chain is:

  1. Sm@rtServer runs as a service inside the HMI runtime (WinCC Comfort/Advanced or Unified RT). It binds a TCP listener on the HMI's IP address, port 5900 (VNC protocol) and optionally port 5800 (HTTP/Java).
  2. The Sm@rtClient app initiates an outgoing TCP connection from the mobile device to the public IP address of the router (obtained via DNS), on the externally advertised port (typically 5900).
  3. The router performs DNAT (Destination NAT) and forwards the packet to the HMI's private IPv4 address on port 5900.
  4. The HMI replies; the router SNATs the response back to the mobile device.

If any step in that chain breaks, the connection fails silently on the client.

The Sm@rtClient always uses TCP port 5900 (the IANA-registered vnc port) for the actual screen stream. Port 5800 is not a Sm@rtClient port — it is the legacy vnc-http port used only by a Java applet embedded in a desktop browser.

3. Port Semantics: 5900 vs 5800

Port Protocol Client Used by Sm@rtClient App? Purpose
5900/tcp VNC (RFB) Sm@rtClient (mobile), VNC Viewer, TightVNC YES — mandatory Encrypted screen / touch event stream
5800/tcp HTTP + Java applet Desktop web browser with Java plugin NO Legacy browser-based remote access (deprecated; Java 8+ removed NPAPI support)
443/tcp HTTPS Web browser Only on Unified / Comfort panels with WebUX Browser-based HMI page rendering

Conclusion: Opening only port 5800 will never allow the mobile Sm@rtClient to connect. You must forward 5900/tcp (and optionally 5800/tcp if you also require desktop browser access).

4. Prerequisites

Before changing router or panel configuration, gather or verify the following items:

  • Static IPv4 address on the HMI (e.g. 192.168.1.50/24). Do not rely on DHCP, as router reboots or lease expirations will break the DNAT target.
  • Public IPv4 address of the router (visible at whatismyip.com from any device on the LAN).
  • DNS name pointing to that public IP (DynDNS, No-IP, or a Siemens-approved dynamic-DNS provider). Required because most ISP residential connections use a dynamic IP.
  • Sm@rtServer enabled and configured on the HMI with a strong password (TIA Portal → HMI device → Sm@rtServer).
  • Sm@rtClient app installed from the official store: Sm@rtClient on Google Play or Sm@rtClient on the App Store.
  • Administrative access to the router to create a port-forwarding (virtual server) rule.
Firmware note: The Sm@rtClient app requires the HMI to be running a WinCC Sm@rtServer-compatible image. The current delivery release list is published in SIOS entry 109482434 / 92275245. Comfort panels typically need image ≥ V14.0 for full Sm@rtClient compatibility.

5. Step-by-Step Configuration

5.1 Configure a Static IPv4 Address on the HMI

  1. On the panel, open Control Panel → Network and Dial-up Connections → <LAN interface>.
  2. Set IP address to a free address outside the router's DHCP range (e.g. 192.168.1.50).
  3. Set Subnet mask to 255.255.255.0.
  4. Enter the router's address as the Default gateway (e.g. 192.168.1.1) and a LAN DNS server (typically the router itself).
  5. Save and reboot the HMI.

Verify on a PC: ping 192.168.1.50 from inside the LAN must respond without loss.

5.2 Enable and Configure Sm@rtServer on the HMI

  1. In TIA Portal, open the HMI device configuration.
  2. Navigate to Runtime settings → Services → Sm@rtServer.
  3. Tick "Activate Sm@rtServer".
  4. Define a password (min. 8 characters, mixed case, digit, special character).
  5. Optionally restrict source IP ranges and configure Auto-logoff after a defined idle period (recommended 5-15 min for plant-floor security).
  6. Download the project to the HMI.

Verify locally: launch Sm@rtClient while on the same Wi-Fi, enter the HMI's LAN IP, and confirm you see the live screen and can operate it.

5.3 Configure Port Forwarding on the Router

  1. Log in to the router (typical address 192.168.1.1).
  2. Locate Port Forwarding, Virtual Server, or NAT (terminology varies: AVM FRITZ!Box uses Freigaben, TP-Link uses Virtual Servers, Cisco uses Port Address Translation).
  3. Create a new rule:
Field Value
Service name Siemens_HMI_Sm@rtServer
Protocol TCP
External port (WAN) 5900 (or a non-standard port such as 15900 to reduce scanner noise)
Internal port (LAN) 5900
Internal IP 192.168.1.50 (the HMI's static IPv4)
Status Enabled
  1. Save and reboot the router if required.
Carrier-Grade NAT (CGNAT) warning: Many mobile and some residential ISPs place customers behind CGNAT. In that case the router's WAN address is itself a private address, and inbound port-forwarding is impossible. Confirm via tracert 8.8.8.8 on the LAN PC — if the first hop is a 100.64.x.x / 10.x.x.x address that is not your router, you are behind CGNAT. The only remedies are (a) request a public IPv4 from the ISP, or (b) use a VPN (see Section 9).

5.4 Configure Dynamic DNS (Required for Most Residential Links)

  1. Register with a dynamic-DNS provider (No-IP, DynDNS, DuckDNS, or a Siemens-recommended service for industrial sites).
  2. Configure the router's Dynamic DNS client with the provider's hostname, username, and password. Most modern routers include native DDNS clients; otherwise run one on a small always-on PC.
  3. Verify the DNS name resolves to the current public IP: nslookup yourhost.dyndns.org 8.8.8.8.

6. IPv6 Considerations

A common fault, explicitly cited in the original report, is the router defaulting to IPv6 only on the WAN side. Sm@rtClient v1.x negotiates an IPv4 socket exclusively; it does not perform DNS64/NAT64 translation. The consequences are:

  • If the HMI has only an IPv4 address and the WAN is IPv6-only, the inbound packet from the mobile carrier (typically dual-stack or IPv6) cannot reach the HMI.
  • If the HMI has only an IPv6 link-local address and the WAN is IPv4, the situation is symmetric and equally broken.

Resolution path:

  1. Force the router's WAN interface to IPv4 (or Dual-Stack / IPv4 preferred). On FRITZ!Box this is Internet → Account information → IP address → IPv4 preferred.
  2. Confirm the HMI's ipconfig-equivalent shows a valid IPv4 gateway.
  3. From a PC on the LAN, run curl -v telnet://<public IP>:5900 to verify the path before involving the mobile device.

7. Verifying the External Port is Open

Use the following sequence to prove the DNAT path is working before involving the Sm@rtClient app:

  1. From a PC on the LAN, browse to canyouseeme.org (or yougetsignal.com).
  2. Enter port 5900 and click Check.
  3. Expected result: Success: I can see your service on <public IP> on port 5900.
  4. If the result is Error: Connection refused or Connection timed out:
    • Confirm the HMI is powered and the Sm@rtServer is running (check on the panel: Control Panel → Sm@rtServer → Status = Running).
    • From a LAN PC, run Test-NetConnection 192.168.1.50 -Port 5900 (PowerShell) or nc -zv 192.168.1.50 5900 (Linux/macOS). Both must report open.
    • If the LAN test passes but the external test fails, the port-forwarding rule is the culprit. Re-check rule parameters and reboot the router.
  5. Once the external port-check reports success, attempt the Sm@rtClient connection from a mobile device on cellular data, using the DDNS hostname and port 5900.

8. Sm@rtClient Connection String and Parameters

On the mobile app, configure the connection profile as follows:

Field Value Notes
Name Free text, e.g. PlantLineA_HMI Display label only
Address / Host DDNS hostname, e.g. myplant.dyndns.org Or the public IPv4 directly for diagnostics
Port 5900 Must match the external port you forwarded
Password Configured in TIA Portal Sm@rtServer settings Case-sensitive
Encryption Enabled (default) Do not disable for production networks
Touch / Pointer mode Touchscreen Matches KTP400 resistive touch

Tap Connect. The expected sequence is:

  1. TLS / VNC handshake (~1-2 s on a clean link).
  2. Authentication prompt → enter Sm@rtServer password.
  3. Screen paint (~2-5 s on broadband; longer on cellular).

9. VPN as a Secure Alternative

Exposing port 5900 directly on the public Internet is convenient but expands the attack surface. Industrial-security guidance (e.g. IEC 62443) recommends terminating remote-maintenance access in a VPN rather than forwarding raw VNC. Two operational patterns are common:

9.1 Site-to-Site IPsec VPN

The plant router establishes an IPsec tunnel to a corporate concentrator. Operators on the corporate network reach the HMI on its private address 192.168.1.50:5900 as if they were on-site. No inbound port-forwarding to the HMI is required.

9.2 Per-User SSL / OpenVPN Client

The operator runs an OpenVPN or WireGuard client on the mobile device. The VPN server on the plant router pushes a route to 192.168.1.0/24. The Sm@rtClient app uses the HMI's private address (192.168.1.50:5900) over the encrypted tunnel. This is the recommended pattern for field-service technicians.

When using a VPN, you do not need to forward port 5900 at all. The VPN tunnel carries the traffic privately. The public DDNS name is only used to reach the VPN endpoint (typically UDP 1194 for OpenVPN or UDP 51820 for WireGuard).

10. Security Hardening Checklist

  • Change the Sm@rtServer password from the TIA Portal default.
  • Restrict source IPs in the Sm@rtServer settings (e.g. allow only the corporate VPN subnet).
  • Use a non-standard external port (e.g. 25900 mapped internally to 5900) to defeat opportunistic scanners.
  • Enable firewall logging on the router and review rejected packets weekly.
  • Disable port 5800 unless desktop browser access is required — Java is no longer supported and the applet is a known attack vector.
  • Set auto-logoff on the Sm@rtServer to 5-15 min.
  • Patch the HMI image per Siemens security advisories; check SIOS quarterly.

11. Troubleshooting Matrix

Symptom Likely Cause Diagnostic Command / Action Fix
External port-check: CLOSED Port forward not active, or CGNAT tracert 8.8.8.8 from LAN Recreate port-forward rule; if CGNAT, request public IP or deploy VPN
External port-check: OPEN, app still fails Sm@rtServer not running on HMI Open panel → Control Panel → Sm@rtServer Enable Sm@rtServer, verify password, download project
App shows Authentication failed Wrong password or user locked Re-enter password; check TIA Portal Sm@rtServer settings Reset password in TIA, re-download
App hangs at Connecting… DNS does not resolve, or wrong port nslookup myhost.dyndns.org from mobile carrier Update DDNS client on router; confirm port 5900
Connection works on Wi-Fi, fails on cellular Cellular carrier is IPv6-only, no NAT64 Check mobile device's IP type in Settings → About → IP Address Enable IPv4 on the HMI side; ensure router WAN is IPv4 or dual-stack
Connection drops after <1 min Router session timer or Sm@rtServer auto-logoff Check router log; check Sm@rtServer idle timeout Raise idle timeout to ≥15 min; disable aggressive NAT timers
Port 5800 works, 5900 does not Port 5800 forwarded but not 5900 Re-check router port-forward table Add TCP 5900 rule

12. Related Siemens Documentation

Do I need to forward TCP port 5800 for the Sm@rtClient mobile app?

No. The Sm@rtClient app uses TCP port 5900 (VNC) exclusively. Port 5800 is the legacy vnc-http port used only by the deprecated Java-applet browser interface. Forwarding 5800 will not allow the mobile app to connect.

My external port-check reports the port as CLOSED even though I forwarded 5900. Why?

Three usual causes: (1) the HMI is offline or Sm@rtServer is disabled, (2) the router's port-forward rule points to the wrong internal IP, or (3) the ISP is using Carrier-Grade NAT, which makes inbound forwarding impossible until a public IPv4 is assigned. Diagnose with a LAN-side nc -zv first, then re-test externally.

Can the Sm@rtClient app work without port forwarding if I use a VPN?

Yes, and it is the recommended approach for production sites. Establish a WireGuard or OpenVPN tunnel from the mobile device to the plant router, then connect Sm@rtClient to the HMI's private LAN address (e.g. 192.168.1.50:5900) over the VPN. No inbound port-forwarding is required.

Does the Sm@rtClient support IPv6?

Current Sm@rtClient releases negotiate IPv4 sockets only. The plant router must be on an IPv4 or dual-stack WAN, and the HMI must have a valid IPv4 address. If the router is forced to IPv6-only, the connection will fail regardless of forwarding rules.

Which Siemens HMI panels support Sm@rtServer and Sm@rtClient?

All Comfort Panels (TP700 / TP900 / TP1200 / KP / KTP Comfort), Unified Comfort Panels, and the Basic 2nd Generation panels (including the KTP400 Basic 2nd Generation referenced in this case) support Sm@rtServer with image version ≥ V14. Verify the exact image compatibility in the SIOS entry 109482434.

Back to blog