~/.hosts patch

Brian Candler B.Candler at pobox.com
Tue Jul 4 12:12:41 UTC 2006


On Mon, Jul 03, 2006 at 02:55:04PM -0700, Brooks Davis wrote:
> The problem is that the client application using a port forwarded to
> localhost:port via ssh must connect to that port via the host name of
> the remote server or it will crash the remote server because it also
> passes localhost or 127.0.0.1 to the remote server over the TCP session
> and the server misbehaves in that case.  Yes it's a bug in both the
> remote server and the client/server protocol, but that's really beside
> the point.  Crappy software exists and sometimes we have to deal with
> it.
> 
> The simple fact is that I needed a hack like this and there wasn't
> another solution (with possible exception of a SOCKS proxy, which wasn't
> an option at the time) a ~/.hosts file would have been a nice way to
> implement part of it rather than actually adding the entry to /etc/hosts.

Well, assuming your client calls gethostbyname() then you could write a tiny
library which always returns 127.0.0.1, and use LD_PRELOAD to load it
beforehand.

Another solution (which doesn't require coding) would be to run the
application inside a jail, and either frig /etc/hosts there, or point
resolv.conf to a nameserver inside the jail, which has a '*' A record
mapping everything to 127.0.0.1

Regards,

Brian.


More information about the freebsd-current mailing list