1

Ruby1.9.3のbert-rpcgemを使用して、ローカルネットワーク上にないErnieサーバーを呼び出しています。

BERTRPC::Service.new("www.someurl.com", 9998)

ここで、SSHを介してその接続を保護する必要があります。ローカルのUNIXソケットを使用することを考えていましたが、それはbert-rpc gemコードを開き、TCPSocket呼び出しをUnixSocket呼び出しに置き換える必要があることを意味します。別の方法はありませんか?

ローカルホストポート9998をwww.someurl.com9998に転送するだけでは不可能なので、次のことができます。

BERTRPC::Service.new("localhost", 9998)

ローカルからリモートへのnet/sshの例を試しましたが、実際に頭を包むことができず、適切なドキュメントが見つかりません。ポートフォワーディングの方法の例を教えてくれる人はいますか?

ありがとう

4

1 に答える 1

2

これに対する解決策は非常に簡単でした。SSHゲートウェイを作成します。

gateway = Net::SSH::Gateway.new('www.someurl.com', 'myuser', :password => "somepass")
gateway.open('www.someurl.com', 9998, 9998)

これにより、localhost:9998がwww.someurl.com:9998にルーティングされます。Herokuは、割り当てられた$ PORT以外のポートでのバインドを許可しないため、これはHerokuでは機能しません。

/ tmpにあるUnixソケットを使用してHerokuでこれを機能させる方法について誰かが考えていますか?

于 2012-03-11T14:21:00.923 に答える