I believe this is exactly what you're seeing, the thing is that localhost does not (and should not) mean bind to all interfaces. The proper way to specify all interfaces is to specify 0.0.0.0 as the listen address for the broker. How did you specify it in your configuration? The proper way would be like:
I have it as uri="tcp://0.0.0.0:61616" Tried localhost and also the actual IP. Still it binds to only localhost. Default setup (localhost) binds to all IPs in 18.104.22.168. Seems an issue in 4.1 onwards at least in Linux.
Seems odd, have you restarted the ESB or done an osgi/update on the auto-generated activemq-broker.xml bundle? If I check it here on my Linux machine I see it's listening on all interfaces as I'd expect:
lsof -p 7145 | grep 61616 :
java 7145 slewis 166u IPv6 762105 0t0 TCP *:61616 (LISTEN)
It binds to all IPs now. Did a restart, commented and removed discoveryUri="multicast://default" attribute from <transportConnector.
So all you have to do is change localhost to 0.0.0.0. Looks like in Fuse 22.214.171.124 localhost=all IPs and Fuse 126.96.36.199 localhost=127.0.0.1 and 0.0.0.0=all IPs. That is good.
Not sure what was the issue - will try to put the default setup back and try just changing the uri=0.0.0.0.
Thanks for the help