我在Ruby 1.9.3中使用bert-rpc gem来调用不在我本地网络上的Ernie服务器:
BERTRPC::Service.new("www.someurl.com", 9998)
现在我希望通过SSH保护该连接。我在考虑使用本地unix套接字,但这意味着我需要打开bert-rpc gem代码并将TCPSocket调用替换为UnixSocket调用。不是有另一种方式吗?
是不是可以将localhost端口9998转发到www.someurl.com 9998,所以我可以这样做:
BERTRPC::Service.new("localhost", 9998)
我已经尝试了本地到远程的net / ssh示例,但我无法真正地围绕它们,我找不到任何好的文档。有人会如此友好地向我展示如何进行端口转发的示例吗?
由于
答案 0 :(得分: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,因为Heroku不允许绑定除分配的$ PORT之外的其他端口。
有没有人知道如何使用/ tmp中的Unix Socket在Heroku上进行此工作?