Running Proxy.py as a Lightweight HTTP Proxy on EC2

Running Proxy.py as a Lightweight HTTP Proxy on EC2

This note describes how to set up Proxy.py, a lightweight HTTP proxy server, on an EC2 instance.

Takahiro Iwasa
1 min read

This note describes how to set up Proxy.py, a lightweight HTTP proxy server, on an EC2 instance.

ℹ️ Note

On May 27, 2022, AWS introduced port forwarding to remote hosts. For more information, please refer to the official documentation.

Setting Up

Install Proxy.py with the following command:

Terminal window
pip install proxy.py

Start Proxy.py using this command:

Terminal window
proxy --port 8080

To ensure Proxy.py runs even after closing the SSH session, use the following command:

Terminal window
nohup proxy --port 8080 > /dev/null &

After launching, you should see logs similar to this in the terminal:

pid:3330 [I] plugins.load:85 - Loaded plugin proxy.http.proxy.HttpProxyPlugin
pid:3330 [I] tcp.listen:82 - Listening on 127.0.0.1:8080
pid:3330 [I] pool.setup:108 - Started 1 acceptors in threaded mode
...

Testing

Establish an SSH tunnel to your EC2 instance:

Terminal window
ssh -L 8080:localhost:8080 -i .ssh/YOUR_PRIVATE_KEY ec2-user@YOUR_HOST

Test the proxy by sending a request to Google:

Terminal window
curl www.google.com -x http://localhost:8080

If the proxy is working correctly, you should receive an HTML response from Google.

About the author

Takahiro Iwasa

Takahiro Iwasa

Software Developer

This blog shares technical notes from hands-on projects—architecture, implementation, and AWS service integrations.