ADVERTISEMENT

What is a proxy server? How does it work?

what is a proxy server
Jack Wherry
Nov 20, 2020 Updated: 26 November 2025 8 min read

What is a proxy server?

how a proxy server works

How a proxy server works

Types of proxies

Transparent HTTP proxies

Reverse proxies

SOCKS Proxies

What is a proxy server used for?

  • Content filtering and security. Schools and workplaces use proxies to secure and filter content on their networks. With a man-in-the-middle root certificate, network administrators can also access content secured with HTTPS.
  • Bypassing censorship. Coincidentally, people also use proxies to circumvent censorship and filtering. Many networks are smart enough to prevent this now, though.
  • Handling traffic. Reverse proxies let web developers handle large traffic influxes and use modern web features while saving time.
  • Traffic tunneling. SOCKS proxies allow users to tunnel web traffic to another server, either to avoid filtering or to access another network. These proxies are similar in use to VPNs, although far more people use VPNs nowadays.
ADVERTISEMENT

Are proxy servers safe?

What is a reverse proxy?

reverse proxy diagram
  • When a user’s request arrives at the website, it actually contacts the reverse proxy—not the real backend web server. This “outer” web server simplifies the user’s request with technology that the real backend can understand.
  • From the inner web server’s perspective, a new connection just came from the reverse proxy, not the user’s computer. The backend processes the request and sends it back to the reverse proxy server, which then returns it to the original user.

What are network proxy settings?

Network proxy settings on Mac
Network proxy settings on Mac
Manual proxy setup on Windows
Manual proxy setup on Windows

How to check your proxy settings

How to set up a proxy

Make your own Linux-based SOCKS proxy

  1. Open a Terminal on your local machine. On Windows, the Command Prompt or PowerShell will work—Microsoft has already installed an OpenSSH client for you. When using macOS, open Terminal.app. On Linux, open your preferred terminal emulator.
  2. In the terminal, run this command: ssh -i ~/.ssh/id_rsa -D 1234 -f -C -q -N user@domain. Here’s what each argument does:
    1. -i: Tells the SSH client where to look for your SSH key used to log into the remote server. If you use password authentication, you don’t need this part.
    2. -D: Tells SSH that we want a SOCKS proxy on the port you specify. In this case, we’re using port 1234.
    3. -f: Moves the process to the background so you can run other commands in the terminal.
    4. -C: Enables compression so that you won’t waste as much Internet bandwidth.
    5. -q: Disables log and debugging messages in the terminal.
    6. -N: Tells SSH that you’re not actually sending commands to the server; just using it as a proxy.
    7. user@domain: Your username on the server and the server’s hostname (or IP address).
  3. In your browser or computer network settings, configure a SOCKSv5 proxy. Here’s how do to that in Firefox:
    1. Open Preferences using the menu button.
    2. Scroll down and choose Network Settings.
    3. Select Manual Proxy Configuration.
    4. As the SOCKS host, type “localhost”. Use the port you specified earlier.
    5. Select “Proxy DNS when using SOCKSv5”.
    6. Click OK and test your settings.

FAQ

ADVERTISEMENT