Perhaps you can explain your environment a little better to us because it’s a little confusing. You say you have IS and MWS running on the same box, and I’m assuming this IS is the same one that has Deployer installed, right?
That being the case, why do you want to use the public IP of the box? The public IP is typically reserved for external clients. The IS on that same box is clearly not an external client. Either use the local IP, or better yet, don’t use an IP at all. Use the host name and it should get resolved to the appropriate IP.
When it comes to testing the connection from a browser, are you launching the browser from the server itself? If not, it doesn’t necessarily mean a whole lot.
The last thing that is a bit confusing is your statement “The issue happens when we create a build using the public ip , and sent to the client , they will not be able to continue if the deployer cannot connect to the MWS.”
Are you creating a build and sending it to your client so they can import it into their Deployer? If so, their Deployer will NOT have to connect to the source again. That’s the point of creating and exporting a build.
Hope this helps,