Closed1

MacでVPN繋いだときに自動的にrouteを追加する

Yamamoto Yuji / はまあYamamoto Yuji / はまあ

モチベーション

特定のホストへのアクセスだけVPNを使いたいが、毎回route打つのダルい

手順

設定 > VPN > (対象VPN) > オプション から 「すべてのトラフィックをVPN接続経由で送信」のチェックを外す

/etc/ppp/ip-up に以下を記述

#!/bin/sh
umask 022
HOST="VPN_DE_ACCESS_SITAI_HOST.com"

if [[ "$4" =~ ^192\.168\.30\.[0-9]+$ ]]; then
  /sbin/route add -host $HOST -interface ppp0 > /tmp/ip-up.log 2>&1
fi

メモ

$4はIPが入ってる

ip-upに渡されてくるppp0のアドレスはどんな変数に入っていますか?

ChatGPTの答え

/etc/ppp/ip-up スクリプトには、PPP接続が確立されたときに特定のパラメータが渡されます。これらのパラメータは、PPP接続の詳細を提供するために使用されます。以下のとおり、ip-up スクリプトに渡されるパラメータのリストです:

$1 - インターフェース名(例: ppp0)
$2 - TTYデバイス
$3 - 接続速度
$4 - ローカルIPアドレス
$5 - リモートIPアドレス
$6 - PPP接続のIPアドレス(ネゴシエーションされたリモートIPアドレス)
したがって、ppp0インターフェースのIPアドレスは $4 に格納されます。

AIが生成してくれたスクリプトがrouteになってて、/sbin/routeじゃないと動かなくてドハマりした。
ログ見当たらないし...

このスクラップは2024/06/07にクローズされました