これは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
接続できることを確認してください。