web-dev-qa-db-ja.com

Mac OS Xでポートを転送する方法

ホストのポート1000へのすべての着信接続(IP:200.234.XXX.XXX)をホスト10.211.55.5のポート80に転送したい

ホストでそれを行うにはどうすればよいですか? Mac OS X 10.5.8を実行している

38
Daniel Cukier

非常に簡単です。まず、Macでリモートログインサービスを有効にする必要があります(システム環境設定-> 共有-> リモートログイン) 。これでsshサーバーが起動します。

次に、OS Xターミナルで次のコマンドを実行します。

ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1

最初にサーバーのフィンガープリントを受け入れるだけでなく、sshログインのローカルパスワードを入力する必要がある場合があります。 (ローカルからローカルのssh公開鍵/秘密鍵を設定して、パスワードの入力を求めないようにすることもできます。これは、読者のための練習として残します。)

形式は次のとおりです。

ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
31
Marius

用途の広いツールncatを使用して非常に簡単:

Sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open

Mac OS X用のncat/nmapのバイナリを公式Webサイトから取得します。 http://nmap.org/download.html#macosx

編集:制限されたポート<1024でリッスンするためにSudoを追加しました

10
Tony Baguette

UPnPルーターがあるとすると、 PortMap を使用してポートを簡単に構成できます。

それは非常にシンプルなUIを持っています。

alt text

5
Alexis Hirst

まあ、私は私のMac OS X 10.5.8システムでそのようなことをする方法をあなたに言うことができます。

私はNATについての回答から始めましたが、実際にはTCPフォワーダープログラムが必要です( 'プロキシ'とポート転送について言及しています)。

これを行うにはいくつかの方法があり、必要に応じて 'SSH'を実行することもできますが、私の好きな短くて甘い方法はPerlスクリプト tcpforward です。

HTTP操作が必要な場合(HTTPリダイレクトを微調整する必要がある場合があるため、末尾の「/」なしでURLのリクエストが来たときに、実際のアクセスできないサーバーにリダイレクトされません)、Apacheはリバースプロキシの仕事。 mod_proxy 、具体的にはProxyPassとProxyPassReverseを確認する必要があります。 しないでくださいProxyRequestsを有効にします、それはフォワードプロキシのためです。これを実行している場合は、Mac OS独自のApacheを使用してこれを実行できるはずです。 mod_proxyには付属しており、/ etc/httpd/httpd.confは更新する設定ファイルです。

Apacheを使用する場合でも、実サーバーのコンテンツ内のすべてのリンクが相対であることを確認する必要があります。それらが実サーバーを参照している場合は、mod_proxy_htmlモジュールを試すことができます(これがうまく機能する経験はありません)。

3
jrg

マシンがインターネットに直接接続されていますか(IE-ルーターなし)?通常はルーターでポート転送を行いますが、モデムを使用して直接接続する場合は、おそらくiptablesが最善の方法です。

0
Dentrasi