Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Requests through another machine

Is it possible to make requests for example with Savon through something like ssh-tunnel. I can run this stuff from my stage server whose IP is whitelisted in the service I'm sending requests to. But of course I want to do the development on my computer :P so is there any option to do that? I've already tried savon's proxy: option in many combinations such as

proxy: "http://name:password@my_stage_server.com"

etc. I'm using Ruby on Rails.

like image 657
Kamil Łęczycki Avatar asked Mar 08 '26 16:03

Kamil Łęczycki


1 Answers

SSH tunnels are the way to go. They are easy to set up, use this in one terminal session:

ssh -L 8080:servicehost:80 myuser@stagingserver

Once established, leave it open. It'll open port 8080 on your localhost as a tunnel to the TCP service at host:443. Point savon to http://localhost:8080/some/url/to/service to access the service running on http://servicehost/some/url/to/service.

If you need this frequently, it's convenient to add it to your ssh config file, which is located at ~/.ssh/config. It's a plain text file, the example above would look like this:

Host staging
  HostName hostname.domain
  LocalForward 8080 servicehost:80
  User myuser

With this configuration you can open the tunnel by simply issuing ssh staging. There are more options you could set, please refer to the MAN page for details.

Hostname resolution

Keep in mind that the hostname servicehost must be resolvable from your staging server, not your development machine. You can use IP addresses, too.

like image 102
datenimperator Avatar answered Mar 11 '26 07:03

datenimperator



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!