
Я часто работаю удаленно. Я использую Network Manager для настройки своего VPN-подключения, которое работает довольно хорошо. VPN, который я настроил в настоящее время, использует тип Password with Certificates (TLS). Я хочу направлять только определенный трафик через VPN, а весь остальной трафик — через обычное локальное интернет-подключение.
Возможно ли это?
Чтобы объяснить мою ситуацию, я приведу пример типа подключений, которые мне обычно приходится устанавливать с помощью сети VPN. У нас есть веб-сайт «интранет» в нашей рабочей сети, поэтому этот веб-сайт доступен мне только при использовании VPN, но доступ к нему осуществляется так же, как и к другим сайтам, таким как Google или askubuntu.com. Я часто подключаюсь к настольному компьютеру через VPN-подключение через удаленный рабочий стол, где я ввожу имя (IP-адрес) настольного компьютера, имя пользователя и пароль. Я подключаюсь к серверу MySQL с помощью MySQL Workbench, где вы вводите IP-адрес, имя пользователя и пароль. Я часто подключаюсь к серверам Linux с помощью SSH.
Для всех вышеперечисленных подключений мне нужен VPN. Однако я также занимаюсь обычным веб-серфингом, а также подключаюсь к ресурсам за пределами рабочей сети (Gmail, Stack Overflow, игры и т. д.). Для этих подключений я не хочу получать доступ через VPN-подключение, потому что этим подключениям не нужен мой VPN, VPN просто делает это намного медленнее.
Я попробовал технику, описанную по этой ссылке:http://darrenwatt.com/split-tunnel-ubuntu/
Похоже, это не сработало для меня. В частности, я не мог подключиться к сайту "intranet" после того, как поставил галочку "Использовать это подключение только для ресурса в его сети" и подключился к VPN.
Кто-нибудь знает, как можно выборочно направить трафик через VPN? Имеет ли это смысл?
Спасибо!!
решение1
Я не знаю, как это работает с NM, но я пишу сценарии.
#!/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
Использование:
sudo /path_to_script/vpn username password
примечание: установите разрешение на выполнение для скрипта
Трафик направляется через VPN только если вы добавляете маршрут, все остальное идет по умолчанию через gw.