[GH-ISSUE #397] Support SOCKS Proxy for External Proxy #398

Open
opened 2026-03-03 19:50:24 +03:00 by kerem · 2 comments
Owner

Originally created by @NghiaTranUIT on GitHub (Apr 3, 2024).
Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/397

Originally assigned to: @kics223w1 on GitHub.

Description

Since we're working on the External Proxy, it's better to support SOCKS Proxy.

Screenshot 2024-04-03 at 4 06 42 PM

Acceptance Criteria

  • Implement a new UI for the SOCKS Proxy. Similar to HTTP and HTTPS Proxy UI works
  • To determine what Proxy is active in the ExternalProxyService, please read the func: getSuitableProxy(isHTTPS) -> SOCKS Proxy is active if SOCKS is enabled and HTTP & HTTPS is OFF.
  • Find a way to support SOCKS 5 with or without Username/Password authentication. We can find a popular SOCKS Proxy NPM package to implement it. Do not reinvent the wheel.

How to test on local machine

  1. Use Charles Proxy to start a SOCKS Proxy at port 8889 in Proxy Menu -> Proxy Setting
Screenshot 2024-04-03 at 4 19 39 PM
  1. Open Proxyman WIndows -> Add SOCKS Proxy to 127.0.0.1 port 8889 -> Save
  2. Visit any website on Google Chrome -> Verify:
  • On Proxyman: Traffic is displayed without error -> I can see HTTP or HTTPS Request data as usual
  • On Charles: Traffic is displayed without error -> I can see HTTP or HTTPS Request data as usual

How to test on production

  1. Ping @NghiaTranUIT to get new IP for the SOCKS Proxy
  2. Test it and verify it works
Originally created by @NghiaTranUIT on GitHub (Apr 3, 2024). Original GitHub issue: https://github.com/ProxymanApp/proxyman-windows-linux/issues/397 Originally assigned to: @kics223w1 on GitHub. ## Description Since we're working on the External Proxy, it's better to support SOCKS Proxy. <img width="716" alt="Screenshot 2024-04-03 at 4 06 42 PM" src="https://github.com/ProxymanApp/proxyman-windows-linux/assets/5878421/828f91b4-0626-4632-9439-162eebddfbc2"> ## Acceptance Criteria - [x] Implement a new UI for the SOCKS Proxy. Similar to HTTP and HTTPS Proxy UI works - [x] To determine what Proxy is active in the `ExternalProxyService`, please read the func: `getSuitableProxy(isHTTPS)` -> SOCKS Proxy is active if SOCKS is enabled and HTTP & HTTPS is OFF. - [ ] Find a way to support SOCKS 5 with or without Username/Password authentication. We can find a popular SOCKS Proxy NPM package to implement it. Do not reinvent the wheel. ## How to test on local machine 1. Use Charles Proxy to start a SOCKS Proxy at port 8889 in Proxy Menu -> Proxy Setting <img width="623" alt="Screenshot 2024-04-03 at 4 19 39 PM" src="https://github.com/ProxymanApp/proxyman-windows-linux/assets/5878421/bebdb4fd-bc37-445d-b6ff-e0c23935cdee"> 2. Open Proxyman WIndows -> Add SOCKS Proxy to `127.0.0.1` port 8889 -> Save 3. Visit any website on Google Chrome -> Verify: - On Proxyman: Traffic is displayed without error -> I can see HTTP or HTTPS Request data as usual - On Charles: Traffic is displayed without error -> I can see HTTP or HTTPS Request data as usual ## How to test on production 1. Ping @NghiaTranUIT to get new IP for the SOCKS Proxy 2. Test it and verify it works
Author
Owner

@NghiaTranUIT commented on GitHub (Apr 3, 2024):

Unit Test:

  • Write some Unit Tests to test SOCKS Proxy with a local SOCKS Proxy Server. Verify we can access HTTP, HTTPS, and HTTPS with SSL without error
<!-- gh-comment-id:2034026696 --> @NghiaTranUIT commented on GitHub (Apr 3, 2024): ### Unit Test: - [ ] Write some Unit Tests to test SOCKS Proxy with a local SOCKS Proxy Server. Verify we can access HTTP, HTTPS, and HTTPS with SSL without error
Author
Owner

@NghiaTranUIT commented on GitHub (Apr 5, 2024):

Update Requirement

  • Port WebsocketProxySOCKSProxyTests.swift. Ping @NghiaTranUIT to get the file and the Websocket_NodeJS_Client_SOCKS_Proxy client code.
<!-- gh-comment-id:2038627246 --> @NghiaTranUIT commented on GitHub (Apr 5, 2024): ## Update Requirement - [ ] Port `WebsocketProxySOCKSProxyTests.swift`. Ping @NghiaTranUIT to get the file and the `Websocket_NodeJS_Client_SOCKS_Proxy` client code.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/proxyman-windows-linux#398
No description provided.