요청을 외부 IP로 로컬 호스트로 리디렉션 (서버 에뮬레이션)


12

서버 (하드 코딩 된 IP)를 호출하고 시작하기 전에 응답을 기대하는 응용 프로그램 (소스 코드 없음)이 있습니다 (일종의 로그인).

서버가 절반의 시간 동안 다운되면 공식 서버의 동작을 에뮬레이트하는 더미 서버를 만들고 싶습니다.

내 문제:

트래픽을 로컬 컴퓨터로 리디렉션하려면 어떻게해야합니까?

IP wxyz로 보내는 모든 요청이 로컬 호스트 (내 더미 서버가 실행되는 곳) 로 다시 라우팅되기를 원합니다.

더 많은 정보:

  • 내 더미 서버는 아파치 / PHP 솔루션입니다.
  • 16 진수 편집기를 사용하여 응용 프로그램에서 하드 코딩 된 IP를 편집하려고했지만 응용 프로그램을 시작할 때 일부 체크섬이 실패합니다.
  • 응용 프로그램에서 IP가 하드 코딩되어 호스트 파일을 사용할 수 없습니다.
  • win xp를 실행 중입니다.

관련 : Windows Server 2008에서 트래픽을 하나의 IP로 다른 IP로 리디렉션하는 방법

답변:


8

이것은 완전한 해킹 일 수 있지만 문제의 서버 IP를 로컬 인터페이스의 추가 IP로 할당 할 수 있습니다.


이것은 좋아 보인다!. 하지만 지금은 시도 할 수 없습니다 (인터넷이 다운되어 3G로 테 더링 중입니다.). 다음 주 말에 의견을 보내 드리겠습니다.
Loda

1
이건 정말 흔든다! 훌륭하고 매우 쉬운 솔루션으로 작업합니다. 감사 !
Loda

달콤하고 다행입니다 :)
Robert Swisher

1
정확성 : NIC에 2sd IP를 추가하면 부작용이 생겼습니다. 동일한 외부 서브 레드에있는 모든 IP가 내 NIC로 리디렉션됩니다. 즉, IP 50.51.51.51을 추가하면 더 이상 IP 50.51.51.52에 연결할 수 없습니다. 이는 경로 50.51.51.0 및 경로 50.255.255.255에 의해 발생합니다. 해결 방법 : 경로 50.51.51.52-> 일반 게이트웨이를 추가하십시오.
Loda

링크가 끊어짐
danilo

2

글쎄, 당신은 다음을 시도 할 수 있습니다 :

다음과 같이 더미 서버를 게이트웨이로 사용하는 해당 IP 주소에 대한 특정 경로를 설정하십시오.

경로 추가 -host wxyz / 32 gw dummy-server-ip

이를 위해서는 네트워크의 기본 라우터에 액세스하거나 요청을 보내는 컴퓨터에서해야합니다. 이것은 wxyz IP 주소를 가진 TCP 패킷을 더미 서버의 MAC 주소로 효과적으로 보냅니다. 따라서 이제 더미 서버가 그들과 함께 무엇을해야하는지 알고 있어야합니다.

그런 다음 wxyz IP 주소를 더미 서버에 보조 주소로 추가하십시오.
마지막으로 더미 서버에서 아파치 구성을 업데이트하여 wxyz 주소에서도 수신 대기하는지 확인하고 더미 서버의 가상 호스트가 IP 주소와 도메인 이름 모두에 대해 들어오는 요청을 수락하는지 확인하십시오.

요청하는 컴퓨터와 더미 서버 사이에 다른 라우터가없는 경우에만 작동합니다. 그리고 관련된 방화벽이 있으면 업데이트도 필요합니다.


대답 주셔서 감사합니다 그것은 내가하고 싶은 것과 정확히 같습니다. 그러나 구현에 문제가 있습니다. 솔루션은 내 컴퓨터 전용이어야하기 때문에 라우터를 만지지 않는 것이 좋습니다. 당신이 예로 든 명령은 내 승리 xp에서 작동하지 않습니다. 또한 "route add wxyz 127.0.0.1"을 성공적으로 시도했습니다. 응용 프로그램과 더미 서버 사이에 방화벽 / 라우터가 없습니다. 둘 다 같은 컴퓨터에서 실행됩니다. (그러나, 나는 방화벽 소프트웨어를 가지고 있습니다 : kaspersky)이 경로를 설정하는 방법에 대한 도움을 주셔서 감사합니다.
Loda

1
Windows에서 사용할 수있는 경로 명령이 있습니다. route ADD wxyz MASK 255.255.255.255 127.0.0.1 그러면 경로가 자신의 컴퓨터로 다시 지정됩니다. wxyz 주소에서 들어오는 요청에 대해 방화벽을 열어야 할 수도 있습니다.
wolfgangsz

이 명령을 사용하여 성공하지 않고 경로를 추가하려고했습니다. 이유를 모른다.
Loda

"route add 62.1.1.10 mask 255.255.255.255 127.0.0.1"오류 메시지 : "경로 추가 오류 : 잘못된 매개 변수"(ES에서 번역됨)
Loda

흠, 아마도 127.0.0.1을 해당 인터페이스의 실제 LAN IP 주소로 바꿔야 할 것입니다. 나는 전에 이와 같은 것을 시도한 적이 없으므로 약간의 추측이 필요합니다.
wolfgangsz

1

아마도 iptables와 함께 뭔가를 부술 수 있습니다. 여기 내가 한 번 사용했지만 더 이상 당신에게 발판을 제공하지 않는 것이 있습니다.

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 172.16.25.202 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to 172.16.27.59:8025
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT

NB : 나는 오래 전에 이것을했다, 거기에 실수가있을 수있다

내가 문제가 될 수있는 유일한 것은 인터페이스와 관련이 있다는 것입니다. eth0은 인바운드 부분에만 해당되므로 lo 인터페이스 (127.0.0.1)에서 ip를 사용하면 대상이 여전히 작동 할 수 있습니다 ...


1
그것은 좋은 대답이 될 것입니다 ...하지만 그는 Windows XP를 실행하고 있습니다.
Jason Berg

도! 나는 "apache / php"를보고 읽지 않았다고 생각한다. 당신이 그것을 지적한 후에도 나는 그것을보기 전에 세 번 스캔했습니다. 글쎄, 나는 그것을 떠날거야 어쩌면 어딘가에 누군가를 도울 것입니다.
jj33

선택적 VPN을 만들기 위해 Vagrant, busybox 및 iptables를 생각하고 있습니다. 시스템에 알려진 IP 주소 중 일부만이 VPN에 속하므로 다른 곳으로의 트래픽은 VPN을 통과하지 않는다고 시스템에 알려줄 수 있기를 원합니다. 내 생각은 매우 가벼운 Linux를 busybox로 사용하여 VPN에 연결 한 다음 iptables 또는 hosts 파일 등을 사용하여 알려진 IP 주소 요청을 게스트 Vagrant VM으로 리디렉션하여 VPN을 처리하는 것입니다. . 이 iptables 규칙은 나에게 도움이 될 수 있습니다 :)
Bruno Finger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.