VPN is much more complete, and generally easy to use. 'ssh -L' sets up a single mapping. 'ssh -D' sets up a proxy on a port, and client software must be configured to use that proxy.
With a VPN, you simply connect, and you can access any services on any ports. Additionally, I think UDP is supported, which is a bit tricky with ssh tunneling.
With a VPN, you simply connect, and you can access any services on any ports. Additionally, I think UDP is supported, which is a bit tricky with ssh tunneling.