最近、グループ プロジェクトを引き受けたので、Oracle データベースに接続する必要がありました。データベースはイントラネット上にあり、クライアントには Windows バージョンしかなく、私の Mac では接続できません。
会社にはイントラネットに正常に接続できる Windows コンピュータがあります。私のアイデアは、この Windows コンピュータを踏み台にして、イントラネットのデータベース ポートを LAN に転送し、Mac を Windows コンピュータの LAN IP に直接接続することです。データは、それを介してイントラネット上の Oracle に送信されます。
全体リンク
Mac(不在内网)
│ TCP 连 Windows局域网IP:1521
▼
Windows 跳板机(已连内网)
│ netsh portproxy 转发至内网地址
│ TCP 连 10.8.0.5:1521
▼
集团 Oracle
Windows で転送ルールを作成する
CMD を管理者として開き (「管理者として実行」を右クリック)、次を実行します。
netsh interface portproxy add v4tov4 \
listenaddress=0.0.0.0 listenport=1521 \
connectaddress=10.8.0.5 connectport=1521
listenaddress=0.0.0.0: すべてのネットワーク カードを監視し、LAN デバイスがアクセスできるようにします。自分だけが使用する場合は、より正確な Mac IP に変更できます。listenport=1521: 覚えやすいように、スプリングボード マシンで一般に公開されているポートはデータベース ポートと一致している必要があります。connectaddress=10.8.0.5: イントラネット内の Oracle の実際の IP、connectport=1521港です。
ファイアウォールが許可するポート
転送ルールは確立されていますが、Windows ファイアウォールはデフォルトで外部からの受信 1521 をブロックするため、引き続き許可する必要があります。また、管理者 CMD では次のようになります。
netsh advfirewall firewall add rule \
name="Oracle 中转" dir=in action=allow protocol=TCP localport=1521
コマンド インターフェイスには、グラフィカル インターフェイスと同じ効果があります。 GUI に慣れている人は、「コントロール パネル → Windows Defender ファイアウォール → 詳細設定 → 受信ルール → 新しいルール」に移動し、TCP ポートを選択し、1521 を入力して接続を許可し、「プライベート」のみをオンにして「パブリック」のチェックを外します。
接続を確認する
Mac ターミナルでポートが到達可能かどうかをテストします。
nc -zv 1521
戻る succeeded リンクが開いていることを示します。次に、DataGrip またはお気に入りの Oracle クライアントを使用して、アドレスを入力します。 Windows局域网IP:1521グループから指定されたユーザー名とパスワードを使用すると、正常に接続できます。
日常的に使用されるいくつかのコマンド
現在の転送ルールをすべて表示します。
netsh interface portproxy show all
ルールを削除します。
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=1521
ファイアウォール ルールを削除します。
netsh advfirewall firewall delete rule name="Oracle 中转"
注意すべき点が 1 つあります。イントラネット接続が切断された後も、転送ルールは残りますが、 connectaddress 到達できない場合、接続はタイムアウトになり、エラー メッセージが報告されます。このような状況が発生した場合は、まずイントラネット接続が正常かどうかを確認し、他のリンクはチェックしないでください。通常、ポートプロキシ ルールは Windows の再起動後も残りますが、ファイアウォール ルールはドメイン ポリシーによってリセットされる場合があります。 add 一度だけ。
公開アカウントをフォローして、できるだけ早く最新情報を入手することを歓迎します
