2

現在、いくつかのレール開発にUbuntu 10.04を使用しています。Windows 7 x64 ホストで VirtualBox を使用してゲスト マシンとしてインストールされます。

Ubuntu 内で、リモート データベースをダウンロードする必要がないように、リモート サーバーから直接ゲスト OS にいくつかのポートをポート トンネリングしようとしています。

リモート サーバーのポート 5000 をゲスト OS のポート 5000 に転送するとします。

VBoxManage.exe を使用して、Windows 側のポートのフォワーダーをセットアップしました。これにより、HostPort 5000 が GuestPort 5000 に転送されます。

次に、ubuntu 内で ssh -L5000:127.0.0.1:5000 を実行します。ただし、「127.0.0.1:5000」にアクセスしようとすると、「チャネル 7: オープンに失敗しました: 接続に失敗しました: 接続が拒否されました」というメッセージが表示されます。

何か不足していますか?

助けてくれてありがとう!

4

3 に答える 3

-1

接続に失敗しました: 接続が拒否されました

これは、リモート エンドで 5000 に接続できないことを意味します。

SSH トンネルを介してゲスト内からこの接続のみを使用している場合は、VBoxManager からの転送は必要ありません。これにより、op が開き、外部のコンピューターがゲストに直接接続できるようになります。ゲストには役立ちません。外部に接続します。

接続 (SSH) するサーバーは、データベースを実行しているサーバーと同じですか? また、データベースはそのサーバーで実行されていますか?

サーバーに (SSH) 接続したら、接続をリッスンしているポートを一覧表示するか、telnet を使用してデータベースへの接続を試みることができます。リスナーを一覧表示するには、「netstat -lnt」を実行します (-l はリッスンを示し、-n は数値 (IP とポート番号を表示)、-t は tcp です)。ポート 5000 で TCP をリッスンするサービスがある場合は、「tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN」のような行が必要です。試して接続するには、単に「telnet 127.0.0.1 5000」を実行します。サーバーから telnet で接続できない場合は、データベースが接続をリッスン/許可していないか、サーバーが別のポートまたはサーバーで実行されています。

于 2010-10-04T08:17:36.590 に答える
-1

SSH はデフォルトで TCP トラフィックを使用しますよね?

確認のために、VirtualBox の NAT には次の制限があります (ユーザー マニュアルに従って)。

ユーザーが注意する必要がある NAT モードの 4 つの制限があります。

ICMP プロトコルの制限: 一部の頻繁に使用されるネットワーク デバッグ ツール (ping や tracerouting など) は、メッセージの送受信に ICMP プロトコルに依存しています。ICMP サポートは VirtualBox 2.1 で改善されましたが (ping が機能するようになりました)、他のツールは確実に機能しない場合があります。

UDP ブロードキャストの受信は信頼できない: ゲストは、リソースを節約するために、ゲストが特定のポートで UDP データを送信した後、一定時間だけリッスンするため、ブロードキャストを確実に受信しません。結果として、ブロードキャストに基づく NetBios の名前解決は常に機能するとは限りません (ただし、WINS は常に機能します)。回避策として、目的のサーバーの数値 IP を \server\share 表記で使用できます。

GRE などのプロトコルはサポートされていません。TCP および UDP 以外のプロトコルはサポートされていません。これは、一部の VPN 製品 (Microsoft の PPTP など) を使用できないことを意味します。TCP と UDP のみを使用する VPN 製品は他にもあります。

1024 未満のホスト ポートの転送は不可能: Unix ベースのホスト (Linux、Solaris、Mac OS X など) では、ルートによって実行されていないアプリケーションから 1024 未満のポートにバインドすることはできません。その結果、そのようなポート フォワーディングを構成しようとすると、VM は起動を拒否します。

于 2010-10-04T15:18:43.097 に答える