
Windows11で特定のIPアドレスへのルーティングを固定する
とあるネットワーク環境にて機器更新後、この鯖への接続がブロックされるようになってしまった…
いろいろ試したところ、スマホのテザリングを使って他のネットワークからアクセスすれば接続できるというのはわかったが、有線LANを接続したままだとうまくいかない。
この鯖のIPへのアクセスだけスマホ経由にならないかとアレコレ調べたところ、routeコマンドで特定の宛先のゲートウェイを変更できることがわかり、設定してみた。
試したこと
routeコマンドでの方法にたどり着くまでに、
- 有線LANを切断し、スマホのテザリング経由にするとアクセスできる
- スマホのテザリング経由でも、LANケーブルが接続されていると有線LANが優先される
- OpenVPNで接続したらどうか?と思い試したが、結局はうまくアクセスできず
など、まぁまぁ時間かかってわかった。
で、なんとか有線LANを繋いだままでもアクセスできないかと思い調べたところ、テザリングした状態で、
route add <TARGET_IP> mask 255.255.255.255 <GATEWAY> metric 1
を実行すればルーティングが設定され、うまくアクセスできることがわかった。
バッチファイルをつくる
routeコマンドで対処できることはわかったが、毎回、カタカタ打つのも面倒。おまけに、<TARGET_IP>は固定されていないので、GeminiにIPアドレスを調べて自動でrouteコマンドを実行するバッチファイルが作れるか?と聞いたところそれらしい提案をしてくれた。
@echo off
setlocal enabledelayedexpansion
set TARGET_HOST=<ターゲットのURL>
set GATEWAY=<テザリング時のゲートウェイアドレス>
echo Getting IP address of %TARGET_HOST% ...
rem Setting IP address from result of nslookup.
for /f "tokens=2" %%i in ('nslookup %TARGET_HOST% ^| findstr /r /c:"^Address: [0-9]"') do (
set TARGET_IP=%%i
)
if "%TARGET_IP%"=="" (
echo Fails to get IP address
pause
exit /b
)
echo IP address: %TARGET_IP%
echo Set the route via %GATEWAY% .
rem Delete if same route information.
route delete %TARGET_IP% >nul 2>&1
rem Add new routing.
route add %TARGET_IP% mask 255.255.255.255 %GATEWAY% metric 1
if %errorlevel% equ 0 (
echo msgbox "ルーティング追加したよ" ,vbInformation, "set_route_2_svr.bat" > %TEMP%/msgboxtest.vbs & %TEMP%/msgboxtest.vbs
) else (
echo msgbox "ルーティング追加失敗!" ,vbInformation, "set_route_2_svr.bat" > %TEMP%/msgboxtest.vbs & %TEMP%/msgboxtest.vbs
)
試したところ、うまく行くらしい👍️ ちなみに実行には管理者権限が必要だった。
テザリング開始時に自動で設定する
タスクスケジューラを使えば、テザリング開始時(=無線LAN接続時)にプログラム/スクリプトを自動実行できるらしいので、設定してみる。手順は以下。
- タスクスケジューラを起動
- 「全般」でわかりやすい名前をつけてタスクを追加、実行時のアカウントはマシンの管理者アカウントにする
- 「トリガー」で「イベント時ーログ」、Microsoft-Windows-NetworkProfile/Operationalを選択
- 「操作」で「プログラムの開始」、作成したバッチファイルを指定する
- 「条件」で「次のネットワーク接続が使用可能な場合に~」でテザリング使用時のプロファイルを選択
- 「設定」で「タスクが既に実行中の場合に~」で既存のインスタンスの停止を選択
実際の動作
テザリングをする前にコマンドプロンプトを開いて、
route print
で現状のルーティングを確認する。
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 192.168.4.1 192.168.4.93 25
127.0.0.0 255.0.0.0 リンク上 127.0.0.1 331
127.0.0.1 255.255.255.255 リンク上 127.0.0.1 331
127.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
192.168.4.0 255.255.255.0 リンク上 192.168.4.93 281
192.168.4.93 255.255.255.255 リンク上 192.168.4.93 281
192.168.4.255 255.255.255.255 リンク上 192.168.4.93 281
224.0.0.0 240.0.0.0 リンク上 127.0.0.1 331
224.0.0.0 240.0.0.0 リンク上 192.168.4.93 281
255.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
255.255.255.255 255.255.255.255 リンク上 192.168.4.93 281
===========================================================================
テザリング開始、しばらくしてルーティングの確認をすると、
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 192.168.4.1 192.168.4.93 25
0.0.0.0 0.0.0.0 172.20.10.1 172.20.10.9 50
115.**.**.81 255.255.255.255 172.20.10.1 172.20.10.9 51
127.0.0.0 255.0.0.0 リンク上 127.0.0.1 331
127.0.0.1 255.255.255.255 リンク上 127.0.0.1 331
127.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
172.20.10.0 255.255.255.240 リンク上 172.20.10.9 306
172.20.10.9 255.255.255.255 リンク上 172.20.10.9 306
172.20.10.15 255.255.255.255 リンク上 172.20.10.9 306
192.168.4.0 255.255.255.0 リンク上 192.168.4.93 281
192.168.4.93 255.255.255.255 リンク上 192.168.4.93 281
192.168.4.255 255.255.255.255 リンク上 192.168.4.93 281
224.0.0.0 240.0.0.0 リンク上 127.0.0.1 331
224.0.0.0 240.0.0.0 リンク上 192.168.4.93 281
224.0.0.0 240.0.0.0 リンク上 172.20.10.9 306
255.255.255.255 255.255.255.255 リンク上 127.0.0.1 331
255.255.255.255 255.255.255.255 リンク上 192.168.4.93 281
255.255.255.255 255.255.255.255 リンク上 172.20.10.9 306
===========================================================================
お~、素晴らしい! 特定のアドレスだけテザリング先のゲートウェイ経由になった。(“115.**.**.81″の行)
試しにホームページを開いてみると、

やった!表示されるようになった!
これで今までと同じく、思い立ったときに記事の投稿ができるし必要なときにメモ見に来れる👍️




ディスカッション
コメント一覧
まだ、コメントがありません