No script a seguir você pode adicionar o host / route que é roteado para vpn. O restante do tráfego estará indo para o gateway padrão
#!/bin/bash
function routeadd {
route add -host xxx.xxx.xxx.xxx dev ppp0
route add -net xxx.xxx.xxx.xxx/xx dev ppp0
}
function makepptp {
echo pty \"pptp xxx.xxx.xxx.xxx --nolaunchpppd\" >> /etc/ppp/peers/vpn;
echo remotename PPTP >> /etc/ppp/peers/vpn;
echo require-mppe-128 >> /etc/ppp/peers/vpn;
echo file /etc/ppp/options.pptp >> /etc/ppp/peers/vpn;
echo ipparam vpn >> /etc/ppp/peers/vpn;
pppd call vpn &
}
if [ -a /etc/ppp/chap-secrets ];
then
rm /etc/ppp/chap-secrets
echo $1 PPTP $2 '*' >> /etc/ppp/chap-secrets;
else
echo $1 PPTP $2 '*' >> /etc/ppp/chap-secrets;
fi
if [ -e /etc/ppp/peers/vpn ];
then
rm /etc/ppp/peers/vpn;
echo name $1 >> /etc/ppp/peers/vpn;
makepptp;
sleep 8;
routeadd;
else
echo name $1 >> /etc/ppp/peers/vpn;
makepptp;
sleep 8;
routeadd;
fi
Uso:
sudo /path_to_script/vpn username password
nota: set execute permision to script
O tráfego é roteado via vpn somente se você adicionar rota, qualquer outra coisa vai para o padrão gw.
Editar 1
Na função routeadd você pode alterar
function routeadd {
route add -host xxx.xxx.xxx.xxx dev ppp0
route add -net xxx.xxx.xxx.xxx/xx dev ppp0
}
para
function routeadd {
route add -host ip_address_for_vnc dev eth0
route add default dev ppp0
}
Isto irá rotear o tráfego vnc para um endereço IP específico para eth0 int e todos os outros para ppp0 int. Experimente.