Cannot access OPCUA server from an external device on the same network

Hello! I am trying to connect to the ignition edge OPCUA server running on my PLC from a process running in a docker container on a different computer within the same network.

However, the process within the docker container cannot connect to the OPCUA server running on the PLC.

I have even tried connecting to it from my laptop using a opcua client and that can't connect to it either.

My OPCUA Server settings are below:

  • bind port: 62541
  • bind address: 0.0.0.0
  • Endpoint Addresses: <hostname>,<localhost>
  • Security Policies: None,Basic256Sha256
  • Anonymous Access Allowed: true
  • Expose Tag Providers: true

I found this post so I set my Endpoint Addresses to <hostname>,<localhost>,the.PLCs.ip.addr and Security Policies to None,Basic256Sha256,None since the container tries to reach the OPCUA server using the URL opc.tcp://the.PLCs.IP.addr:62541 and still got the same error.

It's like the OPCUA server is never being binded to 0.0.0.0 since even nmap can't find it.

Also, given this post, I have also made sure that the IIOT plugin is installed AND the MQTT transmittion module.

I have a docker compose setup where accessing the ignition instance is fine with my original settings.

My ignition edge version is 8.1.21

If theres any info I can provide to help, please let me know. Thank you!!!

Since you're mentioning v8.1.21, I want to make sure you also have a license for the IIoT module. Newer licenses this is all packaged together, but if you don't have the license it probably won't work. I would check any firewalls on the PC to make sure port 62541 is open and not being blocked.

1 Like

You were right about the firewall. Since I have a Opto22 GROOV EPIC, I had to add a firewall rule in groov manage to allow access TCP access to port 62541. I could set Bind Address to 0.0.0.0 and Endpoint Addresses to <hostname>,<localhost> and it worked. Thank you!!!