Windows 7で接続タイプを変更することはできますか? 「未確認のネットワーク」として識別されるOpenVPN接続があり、ファイアウォール内のすべての未確認のネットワークに特定のルールを適用したくありません。
どうやってこれを征服するのですか?
OpenVPNネットワークインターフェイスのデフォルトゲートウェイを追加する必要があります。
私が見つけた方法は、OpenVPNを使用するネットワークインターフェイスを介してターゲットアドレス0.0.0.0にルートを追加することです。
この例では、ネットワーク10.20.20.0/24にIPアドレス10.20.20.20の物理インターフェイスがあり、ネットワーク10.1.1.0/24にIPアドレス10.1.1.10/24のOpenVPN TAPインターフェイスがあるコンピューターがあります(上のサーバーのIPアドレスVPNネットワークは10.1.1.1です)。
1)ネットワークインターフェイスと0.0.0.0への現在のルートに関する情報を確認します。
C:\>route print -4
===========================================================================
Interface List
15...00 ff 6c 3f 5b 0c ......TAP-Win32 Adapter V9
11...00 0e 0c d9 b5 c8 ......Intel(R) PRO/1000 GT Desktop Adapter
===========================================================================
IPv4 Route table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.20.20.1 10.20.20.20 10
10.20.20.0 255.255.255.0 On-link 10.20.20.20 266
...
現在、OpenVPNネットワークインターフェイス番号は15であることがわかります。もう1つの重要な情報は、0.0.0.0への現在のルートのメトリックです。 OpenVPNネットワークの0.0.0.0への新しいルートは、ネットワークトラフィック全体を物理ネットワークではなくOpenVPN接続にリダイレクトしないように、現在よりも高いメトリック値にする必要があります(同じルートの2つのルートの場合、メトリックの低いルートが選択されます)。 。
2)OpenVPNインターフェース経由で0.0.0.0へのルートを追加します。
route -p add 0.0.0.0 mask 0.0.0.0 10.1.1.1 metric 50 if 15
このコマンドは、メトリックが少なくとも50のインターフェース15とゲートウェイ10.1.1.1を介して0.0.0.0へのルートを追加します。ゲートウェイを自分のもの(VPNネットワーク上のサーバーのIPアドレス)に置き換えます。そしてもちろん、インターフェース番号をあなた自身のものに置き換えてください。
-p引数は、ルートを永続的に追加するため、システムの再起動後も維持されます。
3)VPNサーバーに(再)接続し、ルートテーブルをもう一度調べます。
C:\>route print -4
...
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.20.20.1 10.20.20.20 10
0.0.0.0 0.0.0.0 10.1.1.1 10.1.1.10 80
...
そして、ネットワークはネットワークと共有センターで識別されるので、「場所の設定...」ウィンドウが表示されます;-)
上記のソリューションがなぜそれほど複雑であるのか、私にはわかりません。を使用して
route add -p commands
またはOpenVPN server.confファイルに追加する
route 0.0.0.0 vpn_subnet_mask default_gateway
エラーは次のようにして簡単に解決できます:
Control Panel\Network and Internet\Network Connections
(1)OpenVPN tun/tapインターフェースを右クリックして、[ステータス]> [詳細]を選択し、[IPv4 DHCPサーバー]エントリをメモします。これを(2)のデフォルトゲートウェイとして入力する必要があります。
(2)OpenVPN tun/tapインターフェースを右クリックし、[プロパティ]> [TCP/IPv4プロパティを開く]を選択し、[詳細設定]をクリックします。デフォルトゲートウェイの下で、[追加]をクリックし、DHCPサーバーとして使用されているものとまったく同じエントリをメトリック「自動」で入力します。次に、アダプターが魔法のようにプライベートとして表示されるのを待ちます。
上記の2つのソリューションとまったく同じことを実行しました-永続的なルートを追加しますが、これはさらに優れています-Windowsで構成されているため、再起動後も存続します。実際に「route print」と入力してcmdをチェックインすると、ルーティングテーブルに1つのエントリが追加され、永続的なルートの下に1つのエントリが表示されます。新しいルートのメトリックが物理アダプターのメトリックよりも小さい場合は、やり直して(2)、メトリックを「自動」から物理アダプターよりも高い値に変更します。
ゲートウェイ(openvpnサーバーのIP)が静的な場合は、ゲートウェイを追加(2)することで機能します。
これを解決する最も簡単で最良の方法はこれを行うことだと思います:
route 0.0.0.0 0.0.0.0 vpn_gateway 50
(vpn_gatewayは変更しないでください。環境変数です)、保存します。secpol.msc
と入力して、「ネットワークリストマネージャーポリシー」に移動します。これにより、VPNゲートウェイIPを気にする必要がなくなり、動的VPNゲートウェイでも機能します。
これは一部のVPN接続でうまく機能しますが、VPNのデフォルトゲートウェイは常に変化しているとしましょう。つまり、コンピューターをリセットするたびに、「route add」コマンドを何度も使用する必要があります。それは受け入れられません。
Windows 7でVMwareの問題を調査しているときに、* NdisDeviceTypeというレジストリdwordに遭遇しました。これは、特定の仮想ネットワークアダプターを識別しようとしないようにWindowsに指示することです。あなたがしなければならないすべては、レジストリに行き、HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318
に移動することです。
そこに到達したら、キーを調べて、値が「Tap-win」のDriverDesc
という文字列を探します。これは、OpenVPNが使用する仮想アダプターを処理する鍵です。次に、* NdisDeviceTypeというdwordを作成し、それに値1を割り当てます。
最後にコンピュータを再起動します。これで、識別されていないネットワークは表示されなくなります。この変更を行う前に、レジストリをバックアップしてください。 OpenVPNを使用していて、これを行うことに抵抗がある場合は、 スクリプトをダウンロード してこれを実行できます。
デフォルトゲートウェイの追加( コマンドを使用 または Windows GUI )を完了した場合でも、指定を適用することをWindowsに示す方法が必要な場合があります。ネットワークへのプライベートまたはドメイン。おそらく、ネットワークを誤ってすでにパブリックとしてラベル付けしたか、何らかの理由で[場所の設定...]プロンプトで選択する機会がなかった可能性があります。 Windows 10でこのシナリオに遭遇しました。
これをレジストリ経由で設定するには 、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
にあるネットワークプロファイルキーに移動します。 ここから、Profiles
キーには、コンピューターが保存したすべてのネットワークに対応するGUIDを含むキーのリストが含まれます。これらのGUID=キーを調べ、キーのProfileName
値を照合することでネットワークを見つけることができます。 Profiles
キーで正しいネットワークが見つかったら、ネットワークキーのCategory
値を変更します。
Category
値の0
の値は、パブリックネットワークを示します。この値を1
に変更してネットワークにプライベートのラベルを付けるか、2
に変更してネットワークをドメインネットワークとして指定できます。この変更を適用するには、ネットワーク接続を再初期化する必要がある場合があります。
これは機能しますが、TAPアダプターのIP設定を手動で変更して、さらに一歩進んだ方が良いです。 ipconfig
を使用して適切な設定を見つけ、DNSサーバーのゲートウェイを使用します。
更新:このステップは無視してください-そうすると、IPアドレスはマスクされません。なぜなのかはわかりませんが、考えられるすべてのことを元に戻しましたが、唯一の方法は、この手順で行った操作を元に戻してコンピュータを再起動することです。
更新:これに関する問題は、Windowsを起動したときに接続を開始するようにWindows 7を構成したことです。コンピューターを再起動またはシャットダウンすると、ネットワークが不明に戻ることがあります。ルートはまだテーブルにあります。これに対する回避策は、接続先のVPNクライアントの構成ファイルを変更することでした。追加したコマンドは次のとおりです。
#Dummy default gateway to work around Windows 'unidentified network'/'unknown network' (put a "#" in front of this)
route-metric 30
route 0.0.0.0 0.0.0.0 10.0.0.1.
メトリックは、次のように表示されるルートテーブルを読み取ることによって取得されます。
route print -4
10.0.0.1は、VPNが接続するゲートウェイです。たとえば、VPNに接続している場合、ルートテーブルは次のようになります。
-------------------------------------------------------------------------
IPv4 Route Table
-------------------------------------------------------------------------
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.100 25
0.0.0.0 128.0.0.0 10.0.0.1 10.0.7.102 30
最初のエントリは私のルーターへのルートです。 2つ目はVPN接続です。次に、VPN接続ファイル(この場合はvpn.ovpn)を変更するときに、ネットワーク宛先を使用してネットマスクを0.0.0.0にし、ゲートウェイとして10.0.0.1を使用します。次に、設定ファイルでメトリックが30に設定され、30に設定されていることに注意します。
上記のすべてのソリューションは実際には単なる回避策ですが、すべての商品/製品には、言うまでもなく独自のバイヤーがあります。
最も簡単なのは、作成された不明な0.0.0.0
ルートを削除して、すべてが元に戻ることです。コマンドラインからcmd.exe
(管理者として)を実行してから、route delete 0.0.0.0
と入力するだけです。
ジャンクルートや他のゴミを登録したり、その逆を行って象をその場で作ったりすることは、最高のアイデアの1つだとは思いません...頑張ってください!
私のWindows 7マシンでは、「不明なネットワーク」がOpenVPN問題の症状であり、原因ではありませんでした。私の場合、修正は、管理者権限を使用してOpenVPNクライアントGUIを起動することです。