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