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

Bandwidth performance tool for chisel tunnel based on socks5 #1095

Open
ivanvaccarics opened this issue Dec 16, 2020 · 10 comments
Open

Bandwidth performance tool for chisel tunnel based on socks5 #1095

ivanvaccarics opened this issue Dec 16, 2020 · 10 comments

Comments

@ivanvaccarics
Copy link

Hi, I developed a tunnel system based on chisel which exposes on client-side, a SOCKS5 proxy to allow users to perform requests. Moreover, I'm interested to test the bandwidth performance of the tunnel system. There is a way to do this performance test by using iperf through a socks5? Thanks a lot

@bmah888
Copy link
Contributor

bmah888 commented Dec 17, 2020

As long as your proxy presents a TCP port to bind to, it should be possible to run iperf3 through it. You would tell the iperf3 client to connect to the proxy (use the -c and -p options to point to the SOCKS proxy host and port). I think this would work for the most common iperf3 use case of doing TCP tests from the client to server. I'm not sure how UDP or reverse-mode tests would work (it doesn't feel to me like either of this would work well, but I don't really have any first-hand experience with this sort of thing).

@ivanvaccarics
Copy link
Author

dear @bmah888 thanks a lot for your response, I'm, trying to test the iperf3 tool with your suggestions. Another question, there is a way to run iperf3 always on socks5 also if the socks5 requires username and password to accept the request? In a few words, the socks5 requires credentials.

@bmah888
Copy link
Contributor

bmah888 commented Dec 17, 2020

It needs credentials? Yikes that's hard. So there must be some other API other than the standard socket API then?

(What I mean is that there are more parameters/credentials needed than what the normal socket API needs to be able to transfer data, then a program like iperf3 would need to have some explicit SOCKS support. It doesn't currently. My knowledge in this area is really hazy though.)

@BigSully
Copy link

BigSully commented Sep 8, 2021

Another option is to run iperf3 client with proxychains, which proxies traffics via socks5 tunnel to the remote iperf3 server.

@mister-goo
Copy link

Added socks5 client in my fork, only TCP protocol is implemented. mister-goo@532d483

@rezapoorzare
Copy link

I have one more question:
Is it possible to use iperf3 through socks5? Does it support options such as --socks5?
Thanks a lot

@davidBar-On
Copy link
Contributor

Is it possible to use iperf3 through socks5? Does it support options such as --socks5?

Did you try using socks5 per @bmah888 suggested approach is this comment? Also, you may try using socks5 proxy with @mister-goo patch from this comment (note that it assumes port 1000 is used for the proxy).

@rezapoorzare1
Copy link

Dear David, Thanks a lot, I learned a lot from the different comments.

@davidBar-On
Copy link
Contributor

Submitted a PR #1676 with TCP support for SOCKS5 Proxy, based on @mister-goo code.

@rezapoorzare1
Copy link

Submitted a PR #1676 with TCP support for SOCKS5 Proxy, based on @mister-goo code.

Thanks a lot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants