I've got all my web traffic running through Squid using iptables:
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http owner UID match proxy
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128
I'm also using ddclient to update a dynamic DNS host:
$ ddclient -force -v
SENDING: GET / HTTP/1.0
SENDING: Host: checkip.dyndns.org
SENDING: User-Agent: ddclient/3.8.0
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.0 200 OK
RECEIVE: Date: Sat, 13 Aug 2011 02:53:11 GMT
RECEIVE: Content-Type: text/html
RECEIVE: Server: DynDNS-CheckIP/1.0
RECEIVE: Cache-Control: no-cache
RECEIVE: Pragma: no-cache
RECEIVE: Content-Length: 100
RECEIVE: X-Cache: MISS from __HOSTNAME__
RECEIVE: X-Cache-Lookup: MISS from __HOSTNAME__:3128
RECEIVE: Via: 1.0 __HOSTNAME__ (squid/3.1.14)
RECEIVE: Connection: close
RECEIVE:
RECEIVE: <html><head><title>Current IP Check</title></head><body>Current IP Address: 10.1.1.3</body></html>
ipcheck.dyndns.org is returning the LAN ip of my computer, not the ip of my internet connection. Another similar site (ipdetect.dnspark.com) returns the correct external ip address (and I've solved my problem by reconfiguring ddclient to use that service), but I'm curious as to what is happening in the case of ipcheck.dyndns.org?