softether vpnclient via http proxy thru a ppp connection on linux

Instructions are already available here and here. Basically, read the official documentation here and establishing a connection to a server is the easy part.

The tricky part is, vpnclient/vpncmd on linux doesn’t yet manage your ip routes automatically, so it has to be done manually.

The point of this post is to mention that if you’re using http-proxy*, after a connection is established on vpncmd, don’t forget to make an exception for the http-proxy-server-ip when routing ‘default’ traffic to use the tunnel. If you don’t, the connection will loop, and softether will be cut off from the server. (This is annoyingly obvious in hindsight, which is why it is very easy to miss.)

So, before doing:

ip route add remote_ip via default_gateway dev ppp0 proto static
ip route del default
ip route add default via vpn_server_local_ip dev vpn_se

Make sure to first do:

ip route add http_proxy_ip via default_gateway dev ppp0

On the other hand, the client on Windows has a feature complete GUI, plus an integrated list of servers to connect to.

* a rare case, I think, but is the point of this whole affair in my use case, because I route my traffic to the ISPs own http proxy intended for GPRS connections, in order to bypass data-capping