
192.168.1.x:8000 ではなく 127.0.0.1:8000 からのみアクセスできる開発サーバーがあります。クイックハッキングでは、ローカルネットワークから192.168.1.x:8001に接続でき、クライアントと127.0 flow.0.1の間でトンネリングできるように、別のポート(8001など)でリッスンするように設定する方法はありますか? :8000?
答え1
socat
サーバーから:
socat tcp-listen:8001,reuseaddr,fork tcp:localhost:8000
デフォルトでは、socat
TCPポート8001はコンピュータのすべてのIPv4またはIPv6アドレス(サポートされている場合)でリッスンされます。 IPv4/6に置き換えたり、tcp-listen
制限tcp4-listen
しtcp6-listen
たり,bind=that-address
。
プロキシする接続ソケットの代わりにランダムなアドレスを使用する場合、またはlocalhost
アドレス解決をIPv4またはIPv6アドレスに制限する場合に使用tcp
できますtcp4
。tcp6
ポート8000をリッスンするサーバーは、接続が元のクライアントではなくプロキシ(サーバーの場合)localhost
から出ているように見えます。localhost
使用する必要がありますDNAT法(ただし、スーパーユーザー権限が必要です。)サーバーは、クライアントが誰であるかを知ることができます。
答え2
SSHを使用するのが最も簡単なソリューションです。
ssh -g -L 8001:ローカルホスト:8000 -f -N[Eメール保護]
これにより、ワークステーションのローカルポート8001がRemote-server.comポート8000のローカルホストアドレスに転送されます。これは
-g
、ネットワーク内の他のクライアントが自分のワークステーションのポート8001に接続できるようにすることを意味します。それ以外の場合は、ワークステーションのローカルクライアントのみが転送されたポートに接続できます。
-N
つまり、私がすることはシェルを起動するのではなく、ポートを転送するだけです。
-f
SSH接続とログインの成功後にバックグラウンドに分岐することを示します。
ポート8001は、SSHがシャットダウンまたはシャットダウンされるまで多くの接続で開かれています。 Windowsを使用している場合、優れたSSHクライアントPuTTYも同じことができます。ローカルポートとして8001を使用し、ターゲットにlocalhost:8000を使用し、設定からローカルポート転送を追加します。 PuTTYに正常に接続した後に追加できます。
答え3
レガシーを使用するのがnc
最も簡単なソリューションです。
nc -l -p 8001 -c "nc 127.0.0.1 8000"
このバージョンはUbuntuのパッケージでnc
利用可能です。netcat-traditional
(あなたはupdate-alternatives
それをそう呼ぶか、そう呼ぶべきですnc.traditional
。)
SSHと比較すると、暗号化はありません。単一ホストの外部で使用する場合は、この点に注意してください。
答え4
引用するデビッド・スピレット~の回答ServerFaultで見つからないリンクを利用可能なリポジトリに置き換えます。
rinetdはこれを行う必要があり、対応するWindowsバイナリは次のように使用できます。https://github.com/samhocevar/rinetd(Linuxで同じものを探している人にとっては、rinetdはほぼすべてのディストリビューションの標準リポジトリにあるので、「apt-get install rinetd」または「yum install rinetd」または同様のコマンドを使用してインストールできます)
構成ファイル形式を取る単純なバイナリファイルです。
bindaddress bindport connectaddress connectport
たとえば、
192.168.1.1 8001 127.0.0.1 8000
または
0.0.0.0 8001 127.0.0.1 8000
着信ポートをすべてのインターフェイスにバインドする場合。