2015-02-07 2 views
2

고정 IP를 기반으로 액세스를 제공하는 API 서비스에 가입했습니다 (라이브 및 테스트 용).프록시를 사용하는 Rails 앱 호출 API

내 개발 영역 ISP가 정적 IP를 제공하지 않아 정적 인 내 스테이징 시스템 IP에 대한 API 액세스를 활성화했습니다. 오징어를 설치하고 스테이징 서버에 프록시 서버를 설정/활성화하여 프록시로 사용하고 개발하는 동안 API 호출을 할 수 있습니다.

내 개발 및 네트워킹> 프록시 설정이 시스템 전체 (터미널)에서 작동하지 않을 때 Mac을 사용하고 있습니다. 이 때문에 MacProxy, 프록 시퍼 (프록시 클라이언트)의 평가판을 사용하고 있었고 모두 재판이 만료 될 때까지 제대로 작동했습니다. Mac 용 무료 대안이 있습니까?

ssh socks proxy를 만들고 http_proxy = "xxx"로 설정하여 프록시 설정을 시도했습니다. 터미널에서. 내가 터미널 IP post 설정을 확인했을 때 curl ipecho.net/plain; 반향, 적절한 IP를 표시하지만 로컬 레일스 개발 서버를 실행하고 API에 액세스하려고 시도 할 때 잘못된 IP (거부 된 IP가 표시됨)를 거부합니다.

+0

어떻게 API 서비스에 연결하고 있습니까? net/http 라이브러리를 사용하고 있습니까? – coderhs

+0

실제로 Gem (hotel_beds)을 사용하여 API에 연결하려고합니다. 내부적으로 Savon gem을 사용하여 http 연결을 사용합니다. net/http 맨 위에 구현 된 savon을 가정합니다. – Umesh

답변

0

문제를 해결할 수있는 무료 대체 방법은 다음과 같습니다. GitHub의에 프로젝트 :

sshuttle (read me)

그것은 TCPDNS 요청 원격 ssh 서버를 전달합니다.

sshuttle의 가장 기본적인 사용은 다음과 같습니다

./sshuttle -r [email protected] 0.0.0.0/0 -vv 

터널에 모든 트래픽은 당신이 할 수 있습니다

./sshuttle --dns -vr ssh_server 0/0 

도의 일부를 simpify 수 here 가능한 도우미 기능이 있습니다 명령.

+0

제안을 주셔서 감사하지만 oshems는 요세미티와 함께 ​​일하지 않을 것입니다. 이 게시물을 사용하면 ipfw로 문제를 해결할 수 있습니다. – Umesh

0

시스템 수준 프록시 설정은 루비 응용 프로그램에서 사용되지 않습니다. 일반적으로 이것은 연결에 사용하는 라이브러리에 전달되는 코드 수준 옵션입니다.

당신이 Savon 당신이 클라이언트 만들 때 Savon이를 통과해야 다음 프록시를 사용하려면이 호출이 보석 내부에 만들어지는 경우

client = Savon.client(proxy: "http://example.org", ...) 

을, 그 보석은 이미 제공 한 후 않는 옵션을 추가하려면 옵션을 추가해야합니다.

당신이 언급 한 보석은 이미 이것을 구현 한 것처럼 보입니다. - configuration 클래스에는 savon에 전달되는 것으로 보이는 프록시 속성이 있습니다.

+0

나는 이것을 시도했지만 깨진 것 같다. 이후 내 자신의 애플 리케이션 개발에 더 많은 점령했다, 레일 애플 리케이션에 대한 프록시를 설치하는 쉬운 방법이 있다면 생각 (무료입니다.Macports, Proxifier 등은 지불되었지만 작동합니다.) 조금 더 좋았을 수도 있고 넷/http 또는 보석 구현을 점검하는 번거 로움없이 프록시 서버 뒤에서 모든 레일 앱을 실행하려는 '광범위한 청중'을 위해 재사용 할 수있었습니다. 나는 당신이 말했듯이 그것을 포크로 찍어서 고치려고 노력할 것입니다. – Umesh

관련 문제