NAT経由でローカルPC上でubuntu仮想マシンを実行しています。 PuTTYを使用して仮想マシンにSSH接続できます(ローカルで実行されているVMに接続するためにPuTTYを使用する必要がある特別な理由があります)。
しかし、企業VPNにダイヤルインすると、PuTTYが機能せず、しばらくするとタイムアウトエラーが報告されます。 VMはまだ実行中ですが、VMにpingを実行することもできません。
なぜ機能しないのですか?
VMをシャットダウンし、ネットワークをブリッジモードに変更してから、再起動します。
NATモードでは、VMは、ローカルPCのIPアドレスにNATされた仮想ネットワーク上に作成されます。
VPNに接続すると、新しいアドレスが取得され、VMはそのアドレスと通信できません。同時に、VPNクライアントは既知のネットワークとデフォルトルートのリストを受信します。 。既知のネットワークには、VMがハングしている仮想ネットワークが含まれていないため、ルートが表示されなくなります。
仮想マシンのNICをブリッジモードにすることで、ローカルPCのネットワーク上のIPアドレスを取得し、このローカルIPアドレスはVPNを介してプルされません。 「ローカル」サブネットの一部として到達可能になります。
例:ホームルーター:192.168.1.1..PC 192.168.1.100 .. VM now 192.168.100.101 ...しかし、ブリッジモードに移行します..次のようになります:192.168.1.1 (ルーター)ローカルPCとして192.168.1.100、VMは192.168.1.101を取得する可能性があります(3番目のオクテットに注意してください!!)
ルートを簡単に確認するには、コマンドプロンプトを開き、before接続するには、「netstat-rn」を実行します。
次に、VPNに接続し、別の「netstat -rn」を実行します。これにより、ルーティングテーブルの違いが表示されます。よく見ると、DavidWoodwardと私が言っていることがわかります。
デビッドが彼の答えで述べたように、おそらく私のVPNは完全なトンネルであり、それが私のホストがIPアドレスで私のゲストにsshできない理由です。彼らは異なるネットワークにいるからです。
しかし、ホストをWebサーフェシングに使用し、その間にゲストにSSH接続する方法を見つけました。現在、Windowsホストでvmwareプレーヤーを使用しているので、解決策は、ポート転送を実行し、NATネットワークアダプターを使用してvmを実行することです。
C:\ProgramData\VMware
の下のvmnetnat.confファイルを編集します。[incomingtcp]
セクションの下で、転送するポートを維持します。次の行を追加します:9922 = 192.168.20.130:22
ホストに来るものはすべて、ポート9922からゲストポート22に転送します。
これで、PuTTYでアドレスを127.0.0.1 9922
に維持すると、接続がゲストに転送されます。
VPNは、おそらくスプリットトンネルではなくフルトンネルとして設定されています。フルトンネルでは、他のネットワーク接続の使用は許可されていません(マシンとVM間の仮想NICを使用した接続を含む)。
残念ながら、これはおそらくあなたが制御できないものです。これは一般に、他のネットワーク上の悪いものが企業ネットワークに侵入するのを防ぐために設定されたポリシーだからです。どのVPNソフトウェアを使用していますか?