Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/net/http/httproxy: Never uses proxy for localhost #28866

Open
vfaronov opened this issue Nov 19, 2018 · 4 comments

Comments

@vfaronov
Copy link

commented Nov 19, 2018

golang.org/x/net/http/httproxy has a hardcoded rule whereby requests to localhost never use a proxy.

This may be a sensible default, but there should be a way to override it. There is no intrinsic reason why a proxy cannot or should not be used for localhost. My use case is that I have mocks of remote HTTP services running on localhost, and I want to use mitmproxy to debug the Go program’s traffic to/from these services.

One solution might be to use the current default unless there’s a non-empty NO_PROXY/NoProxy environment variable: then I could use some dummy value like NO_PROXY=foo.invalid. But a 100% backwards-compatible solution would require some hack along the lines of NO_PROXY=but_actually_localhost_ok or HTTP_PROXY_LOCALHOST=yes.

@gopherbot gopherbot added this to the Unreleased milestone Nov 19, 2018

@bcmills

This comment has been minimized.

Copy link
Member

commented Nov 19, 2018

(Attn. @bradfitz)

@bradfitz

This comment has been minimized.

Copy link
Member

commented Nov 19, 2018

I'm fine moving that special case rule down further pass the explicit match/no-match checks, but let's not add a new environment variable.

@vfaronov

This comment has been minimized.

Copy link
Author

commented Nov 19, 2018

@bradfitz Not sure I’m following you. The function returns true (use proxy) only if none of the NO_PROXY rules match the request. So if you just move the check past all those rules, it will still fire unavoidably for all localhost requests.

@vfaronov

This comment has been minimized.

Copy link
Author

commented Feb 8, 2019

FWIW, I have found this easy to work around for my use cases (I add tsohlacol to my /etc/hosts and put it in my URLs instead of localhost), so I’d be OK with closing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.