VPN과 비 VPN을 동시에 사용하는 방법은 무엇입니까?

VPN과 비 VPN을 동시에 사용하는 방법은 무엇입니까?

이는 VPN 구성 문제일 수 있지만 특정 사용자 계정은 VPN 연결을 사용하고 나머지 시스템은 VPN이 아닌 연결을 사용하도록 하고 싶습니다. 제가 겪고 있는 문제는 VPN 연결과 비 VPN 연결을 동시에 설정할 수 없다는 것입니다.

내 설정에 대한 일부 정보입니다. Ubuntu Server 16.04를 새로 설치하고 OpenVPN을 사용하여 VPN 연결(개인 인터넷 액세스 VPN 서버에 대한)을 설정했습니다.

예를 들어. 실행하면 ifconfig다음을 얻습니다.

enp2s0    Link encap:Ethernet  HWaddr fc:aa:14:cd:89:1c
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::feaa:14ff:fecd:891c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:638452 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93481 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:901618753 (901.6 MB)  TX bytes:5702645 (5.7 MB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:176 errors:0 dropped:0 overruns:0 frame:0
          TX packets:176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:12800 (12.8 KB)  TX bytes:12800 (12.8 KB)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:60:89:9c
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

이제 위의 인터페이스를 사용하여 다음을 수행할 수 있습니다.

$ curl --interface enp2s0 icanhazip.com

내 IP 주소를 성공적으로 반환합니다. 다음으로 다음 설정을 사용하여 VPN에 연결했습니다.

client
dev tun
proto udp
remote us-chicago.privateinternetaccess.com 1198
resolv-retry infinite
nobind
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass pia.cred
# route-nopull
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.rsa.2048.pem
ca ca.rsa.2048.crt
disable-occ

연결을 설정하고 다음 정보를 제공합니다 ifconfig.

enp2s0    Link encap:Ethernet  HWaddr fc:aa:14:cd:89:1c
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::feaa:14ff:fecd:891c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:638594 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93598 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:901632961 (901.6 MB)  TX bytes:5727985 (5.7 MB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:176 errors:0 dropped:0 overruns:0 frame:0
          TX packets:176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:12800 (12.8 KB)  TX bytes:12800 (12.8 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.53.10.6  P-t-P:10.53.10.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:375 (375.0 B)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:60:89:9c
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

이제 다음 명령을 실행하여 VPN을 성공적으로 통과하십시오.

$ curl --interface tun0 icanhazip.com

그러나 다음 명령을 실행하면 연결이 실패합니다.

$ curl --interface enp2s0 icanhazip.com

내가 원하는 것은 tun0을 통해 VPN을 통해 연결하고 enp2s0을 통해 비 VPN을 통해 연결할 수 있기를 원한다는 것입니다. 여기에서 필요에 따라 특정 연결을 라우팅하도록 iptables 라우팅을 설정할 수 있습니다.

고쳐 쓰다: 네트워크 네임스페이스를 사용하자는 댓글이 있어서 검색하다가 발견했습니다.OpenVPN에서 네트워크 네임스페이스 사용에 대한 기사. 이 명령을 사용하여 연결을 설정할 수 있습니다

$ sudo openvpn --ifconfig-noexec --route-noexec --up netns-script --route-up netns-script --down netns-script --script-security 2 --config 'US Chicago.ovpn'

하지만 VPN을 사용하여 연결을 설정하려고 하면 시간이 초과됩니다.

$ sudo ip netns exec vpn curl icanhazip.com
curl: (6) Could not resolve host: icanhazip.com

답변1

이는 VPN 서버 구성 방법에 따라 다릅니다. 귀하의 경우 모든 트래픽은 VPN을 통해 라우팅됩니다. enp2s0의 기본 게이트웨이를 변경하면 답을 얻을 수 있습니다. 또한 해당 명령을 사용하여 VPN 서버의 P2P IP 링크에 ip neigh연결할 수 있는지 확인하세요.

관련 정보