4

I looked around but I couldn't find anything that would fully answer this.

So, what are the differences?

Also, by proxy I mean either HTTP or SOCKS.

1 Answer 1

6

Proxy

A proxy is a service or system that is a "man in the middle" - it will take requests destined for something other than itself and deliver accordingly.

Typically for a proxy the protocol does not change, the proxy server receives traffic of a given protocol and forwards on using the same protocol to the destination.

HTTP proxies do this for the HTTP protocol. SOCKS does this on the TCP level.

Tunnelling

Tunnelling is sending traffic of one protocol wrapped up in another protocol. You need software on both ends of the tunnel that can wrap the data to be sent in the desired protocol, and then unwrap it at the receiving end.

If the "outer" protocol supports encryption, then tunnelling provides a security benefit. SSH is one protocol that supports tunnelling - you can tunnel HTTP through it, and someone who can only see the SSH connection will not be able to view your traffic.

iodine is an example of software that will let you tunnel HTTP through DNS requests.

VPN

A real, actual VPN is based on the tunnelling concept. The software on the sending or "client" end adds a virtual network adapter to your system, often requiring operating system support or a driver to be installed. This virtual network adapter will wrap outgoing traffic in an encrypted protocol before forwarding on to a VPN server through your physical NIC. (Various protocols include PPTP, L2TP, and OpenVPN).

Since this looks like any other NIC on your system, applications and the operating system can use it like any other NIC without having to be aware of it.

On the receiving or server end, software there will unwrap the received traffic, and then can forward traffic to hosts on a protected internal network, or on to the Internet at large.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .