Comments (7)
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 @
sign in the username, e.g. a username of [email protected]
.
from goftp.
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.
from goftp.
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?
from goftp.
It's a standard web proxy that you would find at most companies:
https://en.wikipedia.org/wiki/Proxy_server#Web_proxy_servers
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:
https://www.youngzsoft.net/ccproxy/faq_66.htm
Here's an example for lftp:
https://www.librebyte.net/en/ftp/lftp-behind-a-proxy/
I was looking for similar instructions for this client, but after examining the code it doesn't appear to support proxies at all...
from goftp.
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?
from goftp.
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!
from goftp.
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.
from goftp.
Related Issues (20)
- No error when unable to connect HOT 3
- Folder containing closing bracket ] don't MLSD / LIST content HOT 1
- Go module version tags?
- CWD is not work HOT 2
- error in ReadDir: failed parsing LIST entry: in Microsoft FTP Service
- Error storing files
- Failed parsing MLSD response on some servers HOT 2
- 出错的时候,数据连接没有关闭 HOT 1
- Retrieve a file from offset? HOT 2
- Failing data connection with STARTTLS (Explicit TLS): tls session not reused HOT 13
- Microsoft FTP Service
- Future of goftp HOT 5
- unexpected response: 550-SSL/TLS required on the control channel (go lang)(Please help me out ) HOT 4
- How to support SOCKS ?
- ReadDir report linked file name instead of link name
- Trasfer mode MODE C (S=stream, B=block, C=compressed).
- error reading response: unexpected EOF while storing a 0 file size using TLS HOT 3
- ReadDir timeout because of weird port usage HOT 1
- ReadDir() cannot read windows hosted ftp directories
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from goftp.