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.
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
5900is 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:
-
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 port5800(HTTP/Java). - 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). - The router performs DNAT (Destination NAT) and forwards the packet to the HMI's private IPv4 address on port
5900. - 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.
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.comfrom 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.
5. Step-by-Step Configuration
5.1 Configure a Static IPv4 Address on the HMI
- On the panel, open Control Panel → Network and Dial-up Connections → <LAN interface>.
- Set IP address to a free address outside the router's DHCP range (e.g.
192.168.1.50). - Set Subnet mask to
255.255.255.0. - Enter the router's address as the Default gateway (e.g.
192.168.1.1) and a LAN DNS server (typically the router itself). - 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
- In TIA Portal, open the HMI device configuration.
- Navigate to Runtime settings → Services → Sm@rtServer.
- Tick "Activate Sm@rtServer".
- Define a password (min. 8 characters, mixed case, digit, special character).
- Optionally restrict source IP ranges and configure Auto-logoff after a defined idle period (recommended 5-15 min for plant-floor security).
- 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
- Log in to the router (typical address
192.168.1.1). - Locate Port Forwarding, Virtual Server, or NAT (terminology varies: AVM FRITZ!Box uses Freigaben, TP-Link uses Virtual Servers, Cisco uses Port Address Translation).
- 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 |
- Save and reboot the router if required.
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)
- Register with a dynamic-DNS provider (No-IP, DynDNS, DuckDNS, or a Siemens-recommended service for industrial sites).
- 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.
- 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:
- 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.
- Confirm the HMI's
ipconfig-equivalent shows a valid IPv4 gateway. - From a PC on the LAN, run
curl -v telnet://<public IP>:5900to 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:
- From a PC on the LAN, browse to canyouseeme.org (or yougetsignal.com).
- Enter port
5900and click Check. - Expected result:
Success: I can see your service on <public IP> on port 5900. - If the result is
Error: Connection refusedorConnection 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) ornc -zv 192.168.1.50 5900(Linux/macOS). Both must reportopen. - 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.
- 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:
- TLS / VNC handshake (~1-2 s on a clean link).
- Authentication prompt → enter Sm@rtServer password.
- 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.
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.
25900mapped internally to5900) to defeat opportunistic scanners. - Enable firewall logging on the router and review rejected packets weekly.
-
Disable port
5800unless 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
- SIOS 109482434 — SIMATIC WinCC [email protected] remote maintenance for SIMATIC HMI
- SIOS 92275245 — Delivery release SIMATIC WinCC Sm@rtClient app
- Sm@rtClient on Google Play
- Sm@rtClient on the Apple App Store
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.