What is the difference between a proxy and a VPN?

What a VPN does logically is turn your internet connection into a big Ethernet cable. When you are logged on to a company's VPN, the effect is similar as though you took your computer to the company's building and directly connected it. VPNs (usually) use encryption so that intermediate systems between you and the company (such as your ISP or a malicious wireless network sniffer) cannot eavesdrop your traffic.

Think of a proxy server as a filter. If all network traffic of a certain type, such as Web (HTTP) traffic, goes through a proxy, that proxy can manipulate that traffic on the way out and back on the way in. This has numerous uses ranging from ad-filtering, anonymizing, censorship, malware protection, and other things.

A proxy server modifies your traffic before it gets to the target. A VPN just wraps it up in encryption during shipping. Of course, for a VPN, the other end must be VPN aware and cooperate. This isn't necessary for a proxy.

That being said, you technically can have proxy servers that do nothing but encrypt traffic, and you probably can have VPNs that work like proxy servers and modify traffic. Both proxies and VPNs forward traffic on behalf of a client. Proxies generally work on specific types of application traffic. For example, there are HTTP proxies, DNS proxies, etc. Although there are SOCKS proxies that proxy everything... Some VPN software also can be configured to act as a virtual network adapter, so it's possible to move traffic through it that doesn't have to be proxy or VPN aware.


The two are very different concepts:

Proxy Server

From Wikipedia:

In computer networks, a proxy server is a server (a computer system or an application) that acts as an intermediary for requests from clients seeking resources from other servers.

Your computer would connect to the proxy server and make a request for a resource (say a web page). The proxy server then goes and gets the resource, and then passes it back to you.

VPN

Again from Wikipedia:

A virtual private network (VPN) is a computer network that uses a public telecommunication infrastructure such as the Internet to provide remote offices or individual users with secure access to their organization's network.

You connect your computer (or network) to a remote network through a virtual network connection. This is effectively the same as running a cable from the remote network to your computer, but a lot cheaper. Your computer is then a part of the remote network. Requests for internet resources (or resources on the remote network) travel down the virtual connection and through the remote network to the internet as if it were the computer's internet connection.

That's all very well, but what's the difference?

  • VPNs are more difficult to set up but any software can use the internet can use a VPN.

  • Proxy servers are cheaper and often easier to set up for mass users, but they require specific software support at the user's end to make the requests to the proxy server.

  • In general a VPN can only support a connection between one computer or network and the remote network. To handle multiple users you need to set up multiple VPNs. (There are special-case exceptions to this but most of the time this is the case).

  • A single proxy server can service hundreds or thousands of users.


To be simple:

VPN : makes your computer (device) as a member of (part of) a desired Network. (So you get the IP from it. Let's say, connect your Office network, from Home. So at the mean time, your IP is Office IP.)

Proxy : connects you to another destination, instead of you doing that. (Here, there's nothing to talk about being a part of desired Network.) This one will go and grab something you requested, and then serves to you. For example: YourFreedom, HideMyAss, etc are Forward Proxies (They act for you). Nginx, HAProxy, ELB, etc are Reverse Proxies (They act for backend Servers).