I need to set up a VPN server, but I have only non-root shell access. I've tried using pptpd with slirp but could not get it working. Is there any other way? Right now, I have SOCKS access, but need UDP working as well. Thanks.
You can try sshuttle, which will redirect all TCP (and UDP if you set it correctly) traffic from the local machine through the remote server. You will need to have python on the remote shell. If you don't, I would suggest using homebrew, which now works for linux also.
From the README at github:
As far as I know, sshuttle is the only program that solves the following common case:
Your client machine (or router) is Linux, FreeBSD, or MacOS.
You have access to a remote network via ssh.
You don't necessarily have admin access on the remote network.
The remote network has no VPN, or only stupid/complex VPN protocols (IPsec, PPTP, etc). Or maybe you are the admin and you just got frustrated with the awful state of VPN tools.
You don't want to create an ssh port forward for every single host/port on the remote network.
You hate openssh's port forwarding because it's randomly slow and/or stupid.
You can't use openssh's PermitTunnel feature because it's disabled by default on openssh servers; plus it does TCP-over-TCP, which has terrible performance (see below).