Sorry if I'm asking something obvious, but does your varnish cache listen to your external address? If it is listening to localhost, it wont answer to any request coming from another address. You could use telnet to check if varnish is listening by executing this command
"telnet localhost 8080" and "telnet your-ip 8080"
If something is listening on one of those address, it should print something like:
Connected to localhost.
Escape character is '^]'
Then something is listening to this port, if it just says connection refused or timeout, it isnt listening to this port.
You could use nmap to determine if varnish is listening to another port.
"nmap localhost" or "nmap your-ip"
I hope this helps a little...