-
Notifications
You must be signed in to change notification settings - Fork 97
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
proxy support #50
Comments
I'm not too familiar with FTP proxies. Can you just connect directly to the proxy? It seems like most proxies accept the remote server after an |
FTP proxies are just HTTP Connect proxies. Usually you define it by setting the FTP_PROXY environment variable, which is analogous to the HTTP_PROXY and HTTPS_PROXY env vars. They aren't FTP servers themselves, so connecting directly to it with an FTP client won't work. |
You are saying it proxies FTP over HTTP? When I googled for FTP proxy, all I saw are actual FTP proxy servers where you connect to them using FTP, and they proxy to other FTP servers. Do you have a link describing how your FTP proxy works? |
It's a standard web proxy that you would find at most companies: Our specific one is Squid, and we need to use it in order to access resources on the internet. Essentially, an application will read the proxy configuration from the environment or elsewhere, then instead of connecting to the target server directly it will open a tunnel through the proxy using an HTTP CONNECT request. After the connection is established it's used by the application as normal. Here's an example configuration from filezilla: Here's an example for lftp: I was looking for similar instructions for this client, but after examining the code it doesn't appear to support proxies at all... |
Thanks! I have no plans to support proxies like this in goftp. It seems like they are various kinds of proxies and they fall outside the purvey of ftp itself. We could add the ability to create an ftp connection given a generic net.Conn so the user's code could set up the proxy connection and pass that to goftp. Would that solve your problem? |
That would work for any other protocol except FTP. Without knowing what ports the ftp session needs for data transfers, there's no way to create the correct connections ahead of time. I'm going to see if I can wrap our app in something that can catch connections, or see if there's a way to forward all traffic through the proxy using redsocks and iptables... Failing that I guess we'll just need to rewrite our app using something else. Thanks anyways! |
I have implemented this on my fork of the repo and created a pull request #55 I have used this in conjunction with mwitkow/go-http-dialer to be able to make connections via squid proxy. |
This is a duplicate of #20 but I couldn't find a way to reopen it.
How can we configure the ftp connection to use a proxy? My network requires the use of a proxy in order to access the internet. I've tried setting FTP_PROXY as per the standard, but it didn't work. The connection still attempts to go direct, and thus times out.
The text was updated successfully, but these errors were encountered: