
나는 종종 원격으로 일합니다. 저는 Network Manager를 사용하여 VPN 연결을 설정했는데 꽤 잘 작동했습니다. 현재 TLS(암호와 인증서) 유형을 사용하여 설정한 VPN입니다. 내가 원하는 것은 특정 트래픽만 VPN을 통해 라우팅하고 다른 모든 트래픽은 일반 로컬 인터넷 연결을 통해 라우팅하는 것입니다.
이것이 가능한가?
내 상황을 설명하기 위해 일반적으로 VPN 네트워크에 연결해야 하는 연결 유형의 예를 들어보겠습니다. 회사 네트워크에 "인트라넷" 웹 사이트가 설정되어 있으므로 이 웹 사이트는 VPN을 사용할 때만 액세스할 수 있지만 Google이나 askubuntu.com과 같은 다른 사이트에 액세스하는 것과 동일한 방식으로 액세스됩니다. 저는 원격 데스크톱을 통해 VPN 연결을 통해 데스크톱 컴퓨터에 연결하는 경우가 많습니다. 여기에 데스크톱 컴퓨터의 이름(IP 주소), 사용자 이름, 비밀번호를 입력합니다. 저는 IP 주소, 사용자 이름, 비밀번호를 입력하는 MySQL Workbench를 사용하여 MySQL 서버에 연결합니다. 나는 종종 SSH를 사용하여 Linux 서버에 연결합니다.
위의 모든 연결에는 VPN이 필요합니다. 그러나 나는 또한 일반적인 웹 서핑을 할 뿐만 아니라 업무 네트워크 외부의 리소스(Gmail, Stack Overflow, Gaming 등)에 연결하기도 합니다. 이러한 연결에는 VPN이 필요하지 않기 때문에 VPN 연결을 통해 액세스하고 싶지 않습니다. VPN은 속도를 훨씬 느리게 만듭니다.
나는 이 링크에 설명된 기술을 시도했습니다.http://darrenwatt.com/split-tunnel-ubuntu/
이것은 나에게 효과가 없는 것 같았습니다. 특히 "이 연결은 해당 네트워크의 리소스에만 사용" 확인란을 선택하고 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로 설정됩니다.