2018年3月20日火曜日

デフォルトの接続を維持しつつOpenVPNを利用する

旧ブログより転載


クライアント
 <-eth0-> DefaultNetwork <-> httpbin.org/ip <-> デフォルトのIPアドレス
 <-tun0-> VPN           <-> httpbin.org/ip <-> VPNのIPアドレス
route_up.sh
#!/bin/sh
 
echo "$dev : $ifconfig_local -> $ifconfig_remote gw: $route_vpn_gateway"
 
ip route add default via $route_vpn_gateway dev $dev table 20
ip rule add from $ifconfig_local table 20
ip rule add to $route_vpn_gateway table 20
ip route flush cache
exit 0
VPNプロバイダから提供されるovpn-configに以下を追記する
script-security 2 system
route-noexec
route-up /etc/openvpn/route_up.sh
実行
screen
sudo openvpn --config /root/vpn/PIA/NL.ovpn
screenから抜けるにはCtrl+A+D
確認
curl http://httpbin.org/ip --interface tun0
プログラムからも実行可能
test.php
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://httpbin.org/ip');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_INTERFACE,$args[1]); //NIC
var_dump(curl_exec($ch));
curl_close($ch);
php test.php # eth0 ip
php test.php tun0 #vpn ip

0 件のコメント:

コメントを投稿

speedtest.netのホストを一時中断

10ギガビットの普及に伴い、新たに10ギガビットネットワークの用意ができるまでホストをやめます (PING値でサーバが決定されてしまうので計測ユーザに迷惑なため) [root@localhost ~]# ifconfig enp2s0f0: flags=4163<...