[GH-ISSUE #658] [BUG] Insecure HTTP urls always fail in Docker #653

Open
opened 2026-03-03 19:20:40 +03:00 by kerem · 6 comments
Owner

Originally created by @mattbenton on GitHub (Oct 14, 2020).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/658

Originally assigned to: @NghiaTranUIT on GitHub.

Proxyman version

Version 2.9.1 (20910)

macOS Version

10.15.7 (19H2)

Steps to reproduce

I'm using Docker Desktop for Mac version 2.3.0.5 (48029) (stable).

  1. Ensure Proxyman is closed

  2. Enter container and install curl

docker run -it ubuntu:12.04 bash
  1. Install curl within the container:
apt-get update; apt-get install -y --force-yes curl
  1. Test without Proxyman
# This returns 200
curl -I http://example.com

# This returns 200
curl -I https://example.com
  1. Open Proxyman. Ensure all tools are disabled (requests to example.com should essentially pass through). Test again while Proxyman is open:
# This should return status 200, but returns 400
curl -I http://example.com

# This returns 200
curl -I https://example.com

Expected behavior

I expect HTTP and HTTPS requests to work within Docker regardless of whether Proxyman is open, especially when the domain being requested is not configured to be processed by Proxyman.

Originally created by @mattbenton on GitHub (Oct 14, 2020). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/658 Originally assigned to: @NghiaTranUIT on GitHub. ### Proxyman version Version 2.9.1 (20910) ### macOS Version 10.15.7 (19H2) ### Steps to reproduce I'm using Docker Desktop for Mac version 2.3.0.5 (48029) (stable). 1. Ensure Proxyman is closed 2. Enter container and install curl ```bash docker run -it ubuntu:12.04 bash ``` 3. Install curl within the container: ```bash apt-get update; apt-get install -y --force-yes curl ``` 4. Test without Proxyman ```bash # This returns 200 curl -I http://example.com # This returns 200 curl -I https://example.com ``` 5. Open Proxyman. Ensure all tools are disabled (requests to example.com should essentially pass through). Test again while Proxyman is open: ```bash # This should return status 200, but returns 400 curl -I http://example.com # This returns 200 curl -I https://example.com ``` ### Expected behavior I expect HTTP and HTTPS requests to work within Docker regardless of whether Proxyman is open, especially when the domain being requested is not configured to be processed by Proxyman.
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 14, 2020):

Thanks for detailed walkthrough. I will try to reproduce the bug today and get back to you soon 👍

<!-- gh-comment-id:708315875 --> @NghiaTranUIT commented on GitHub (Oct 14, 2020): Thanks for detailed walkthrough. I will try to reproduce the bug today and get back to you soon 👍
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 14, 2020):

@mattbenton please check out this beta build: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_2.9.1_curl_docker_issue.dmg

I tested curl -I http://example.com --proxy http://localhost:9090 from macOS, it works fine, but it doesn't work on Ubuntu Docker.

The problem was the curl in ubuntu is older (7.22.0) than the curl from macOS (7.64.1), so the HTTP Message format is slightly different. Therefore, Proxyman mistranslates it.

It's fixed and works fine now 🙌 😄

Screen Shot 2020-10-14 at 23 01 26 Screen Shot 2020-10-14 at 23 01 07
<!-- gh-comment-id:708504087 --> @NghiaTranUIT commented on GitHub (Oct 14, 2020): @mattbenton please check out this beta build: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_2.9.1_curl_docker_issue.dmg I tested `curl -I http://example.com --proxy http://localhost:9090` from macOS, it works fine, but it doesn't work on Ubuntu Docker. The problem was the curl in ubuntu is older (7.22.0) than the curl from macOS (7.64.1), so the HTTP Message format is slightly different. Therefore, Proxyman mistranslates it. It's fixed and works fine now 🙌 😄 <img width="839" alt="Screen Shot 2020-10-14 at 23 01 26" src="https://user-images.githubusercontent.com/5878421/96014977-35b3c800-0e71-11eb-9286-4dbfb7f13ced.png"> <img width="1342" alt="Screen Shot 2020-10-14 at 23 01 07" src="https://user-images.githubusercontent.com/5878421/96014992-3b111280-0e71-11eb-9e7d-3915113d6d54.png">
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 15, 2020):

If you're using this beta build, please ignore it. I introduce another bug that causes the query of URL is absent 😣

I'm fixing it now

<!-- gh-comment-id:708852894 --> @NghiaTranUIT commented on GitHub (Oct 15, 2020): If you're using this beta build, please ignore it. I introduce another bug that causes the query of URL is absent 😣 I'm fixing it now ✊
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 15, 2020):

Hey @mattbenton, this beta build should fix all cases: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_2.9.1_curl_docker_2.dmg

Let check it out and let me know if resolve your cases. Thank you in advance 🙌

<!-- gh-comment-id:708869385 --> @NghiaTranUIT commented on GitHub (Oct 15, 2020): Hey @mattbenton, this beta build should fix all cases: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_2.9.1_curl_docker_2.dmg Let check it out and let me know if resolve your cases. Thank you in advance 🙌
Author
Owner

@mattbenton commented on GitHub (Oct 15, 2020):

@NghiaTranUIT Excellent! I had been testing the first beta you sent and was about to update that HTTP was not working in a particular edge case. However, the issue seems to be resolved with your newer build.

Thank you! 😄

<!-- gh-comment-id:708876541 --> @mattbenton commented on GitHub (Oct 15, 2020): @NghiaTranUIT Excellent! I had been testing the first beta you sent and was about to update that HTTP was not working in a particular edge case. However, the issue seems to be resolved with your newer build. Thank you! 😄
Author
Owner

@NghiaTranUIT commented on GitHub (Oct 15, 2020):

Glad to know it finally works 😄

<!-- gh-comment-id:708883777 --> @NghiaTranUIT commented on GitHub (Oct 15, 2020): Glad to know it finally works 😄
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#653
No description provided.