Chuyển hướng yêu cầu đến một IP bên ngoài đến localhost (giả lập một máy chủ)


11

Tôi nhận được một ứng dụng (không có mã nguồn) gọi một máy chủ (IP được mã hóa cứng) và mong đợi câu trả lời trước khi bắt đầu (một loại đăng nhập).

Nguyên nhân là do máy chủ ngừng hoạt động, tôi muốn tạo một máy chủ giả sẽ mô phỏng hành vi của máy chủ chính thức.

Vấn đề của tôi:

Làm cách nào tôi có thể chuyển hướng lưu lượng truy cập đến máy cục bộ của mình?

Tôi muốn tất cả yêu cầu gửi tới IP wxyz sẽ được định tuyến lại đến localhost (nơi máy chủ giả của tôi đang chạy)

Thêm thông tin:

  • máy chủ giả của tôi là một giải pháp apache / php.
  • Tôi đã cố gắng chỉnh sửa IP được mã hóa cứng trong ứng dụng bằng trình chỉnh sửa hex, nhưng một số tổng kiểm tra bị lỗi khi tôi khởi động ứng dụng.
  • Vì IP bị mã hóa cứng trong ứng dụng, tôi không thể sử dụng tệp máy chủ.
  • Tôi đang chạy win xp.

liên quan: Cách chuyển hướng lưu lượng truy cập đến một IP sang một IP khác trên Windows Server 2008

Câu trả lời:


7

Đây sẽ là một vụ hack hoàn toàn, nhưng bạn có thể thử gán IP của máy chủ được đề cập dưới dạng IP bổ sung trên giao diện cục bộ của mình, hướng dẫn tại đây


Điều này có vẻ tuyệt vời! nhưng tôi không thể thử ngay bây giờ, (internet của tôi bị sập, tôi đang kết nối với 3G ..). Tôi cung cấp cho bạn một số thông tin phản hồi vào cuối tuần tới.
Loda

1
Đây thực sự là đá! làm việc tuyệt vời, giải pháp rất dễ dàng. cảm ơn !
Loda

Thật ngọt ngào, vui mừng khi nghe nó :)
Robert Swisher

1
Chính xác: Thêm IP 2sd vào NIC của tôi có tác dụng phụ; tất cả IP trong cùng một mục con bên ngoài được chuyển hướng đến NIC của tôi. tức là: khi thêm IP 50.51.51.51, IP 50.51.51.52 không thể truy cập được nữa. Điều này được gây ra bởi tuyến đường 50.51.51.0 và tuyến đường 50.255.255.255. Giải pháp thay thế: thêm tuyến 50.51.51.52 -> cổng thông thường.
Loda

liên kết bị hỏng
danilo

2

Vâng, bạn có thể thử như sau:

Thiết lập một tuyến đường cụ thể cho địa chỉ IP đó, sẽ sử dụng máy chủ giả làm cổng, như thế này:

tuyến đường thêm -host wxyz / 32 gw dummy-server-ip

Đối với điều này, bạn sẽ cần quyền truy cập vào bộ định tuyến chính cho mạng của mình hoặc bạn phải thực hiện trên máy đang gửi yêu cầu. Điều này có hiệu quả gửi các gói TCP có địa chỉ IP wxyz đến địa chỉ MAC của máy chủ giả. Vì vậy, bây giờ bạn cần chắc chắn rằng máy chủ giả biết phải làm gì với chúng.

Sau đó thêm địa chỉ IP wxyz làm địa chỉ phụ cho máy chủ giả.
Cuối cùng cập nhật cấu hình apache trên máy chủ giả để đảm bảo nó cũng lắng nghe địa chỉ wxyz và đảm bảo rằng vhost trên máy chủ giả chấp nhận các yêu cầu đến cho cả địa chỉ IP và tên miền.

Xin lưu ý rằng điều này sẽ chỉ hoạt động nếu không có bộ định tuyến khác giữa máy yêu cầu và máy chủ giả. Và nếu có bất kỳ tường lửa nào liên quan, họ cũng cần cập nhật.


Cảm ơn vì câu trả lời giống hệt như những gì tôi muốn làm. Nhưng, tôi có vấn đề khi thực hiện nó. Tôi sẽ không muốn chạm vào bộ định tuyến, bởi vì, giải pháp nên dành riêng cho máy của tôi. Lệnh bạn đặt tôi làm ví dụ không hoạt động trên win xp của tôi. Tôi cũng đã thử "tuyến đường thêm wxyz 127.0.0.1" nhưng không thành công. Tôi không có tường lửa / bộ định tuyến giữa ứng dụng và máy chủ giả. cả hai đều chạy trên cùng một máy. (Nhưng, tôi có một tường lửa phần mềm: kaspersky) Tôi sẽ thực sự đánh giá cao một số trợ giúp về cách đặt tuyến đường này.
Loda

1
Có một lệnh tuyến đường có sẵn cho Windows: tuyến ADD wxyz MASK 255.255.255.255 127.0.0.1 Điều này sẽ trỏ tuyến trở lại vào máy của bạn. Bạn có thể phải mở tường lửa cho các yêu cầu đến trên địa chỉ wxyz.
wolfgangsz

Tôi đã cố gắng thêm một tuyến bằng cách sử dụng lệnh này nhưng không thành công. không biết tại sao.
Loda

"tuyến đường thêm 62.1.1.10 mặt nạ 255.255.255.255 127.0.0.1" Thông báo lỗi cho biết: "lỗi thêm tuyến đường: tham số không chính xác" (dịch từ ES)
Loda

Hmm, có lẽ bạn cần thay thế 127.0.0.1 bằng địa chỉ IP LAN thực tế của giao diện đó. Tôi chưa bao giờ thử bất cứ điều gì như thế này trước đây, vì vậy có một chút phỏng đoán liên quan.
wolfgangsz

1

Bạn có thể có thể đập một cái gì đó cùng với iptables. Đây là thứ tôi đã từng sử dụng nhưng không còn làm gì để cho bạn một ưu thế:

*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: Tôi đã làm điều này từ lâu, có thể có những sai lầm trong đó

Điều duy nhất tôi thấy có thể là một vấn đề là nó đặc trưng cho giao diện. Tôi nghĩ rằng eth0 chỉ dành cho phần bên trong, vì vậy sử dụng ip trên giao diện lo (127.0.0.1) làm mục tiêu vẫn có thể hoạt động ...


1
Đó là một câu trả lời tuyệt vời ... nhưng anh ấy đang chạy Windows XP.
Jason Berg

Đừng! Tôi nghĩ rằng tôi đã thấy "apache / php" và ngừng đọc. Ngay cả sau khi bạn chỉ ra tôi đã quét ba lần trước khi tôi nhìn thấy nó. Ồ tốt, tôi sẽ rời khỏi nó, có thể nó sẽ giúp ai đó ở đâu đó.
jj33

Tôi đang suy nghĩ với Vagrant, busybox và iptables để tạo một VPN chọn lọc. Tôi muốn có thể nói với hệ thống của mình rằng chỉ một vài địa chỉ IP đã biết thuộc về VPN để lưu lượng truy cập đến một nơi khác sẽ không đi qua VPN. Ý tưởng của tôi là sử dụng Linux rất nhẹ như busybox để kết nối với VPN, sau đó sử dụng iptables hoặc lưu trữ tệp hoặc một cái gì đó tương tự, chuyển hướng các yêu cầu của các địa chỉ IP đã biết đến máy khách Vagrant VM để nó xử lý VPN . Quy tắc iptables này có thể giúp tôi một số trợ giúp :)
Bruno Finger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.