이는 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
연결할 수 있는지 확인하세요.