如何用Ruby的法拉第指定网络接口?

我正在使用Faraday包装各种适配器,包括Net :: HTTP,Excon,Typhoeus,Patron和EventMachine。 我想指定网络接口(例如en0en1 ),但我不确定如何或是否可能。 我愿意接受Ruby级别或Linux级别的答案。

注意:根据使用Ruby和Curb从不同网络接口发出HTTP请求 ,这可以通过Curb实现 。

我认为甚至可以用法拉第和台风来做到这一点: https : //github.com/typhoeus/typhoeus/blob/92d19df7af06034ae28996e097676b01301042f5/lib/typhoeus/adapters/faraday.rb#L139 。

不确定是否可以绑定到特定的网络接口,但是使用法拉第可以设置请求选项:bind{:host => "", :port => "" }以指定至少IP地址和端口。

据我所知,em-http,em-synchrony,httpclient和typhoeus适配器都遵循这些设置。

我遇到了Typhoeus这个问题(不使用Faraday)并绑定到特定的本地接口。 以下对我有用:

 options = { interface: '' } req = Typhoeus::Request.new("https://example.com/3", options)