Có một trang web mà tôi chỉ có thể truy cập từ một vài địa chỉ IP được liệt kê trong danh sách trắng. Hãy gọi nó là xyz.com. Hơn nữa, xyz.com chỉ cho phép kết nối qua https.
Tôi cũng có một máy chủ Debian 8.10 có địa chỉ IP tĩnh là một trong những IP được liệt kê trong danh sách trắng và tôi có một tên DNS được thiết lập cho nó. Hãy nói rằng đó là myserver.biz.
Những gì tôi muốn làm là kết nối với myserver.biz trên một phần cụ thể (giả sử 12345) và gửi yêu cầu tới xyz.com để nó thực sự có được trang web đó và sẽ không có bất kỳ vấn đề SSL nào mà tôi có thể Không tạo ra ngoại lệ cho.
Nỗ lực đầu tiên của tôi là sử dụng iptables
trên máy chủ của mình để chuyển tiếp một cách minh bạch tất cả các yêu cầu đến trên cổng 12345 đến địa chỉ IP của máy chủ xyz.com trên cổng 443. tức là:
iptables -t nat -A PREROUTING -p tcp --dport 12345 -j DNAT --to <xyz.com's server IP>:443
iptables -t nat -a POSTROUTING -d <xyz.com's server IP> -j MASQUERADE
Điều này gần như đã làm việc, nhưng không hoàn toàn. Nếu tôi trỏ trình duyệt của mình tới myserver.biz:12345, nó sẽ không hoạt động vì xyz.com đang lưu trữ chia sẻ và máy chủ sẽ không xử lý yêu cầu của tôi như thể tôi đang kết nối với xyz.com.
Tuy nhiên, nếu tôi chỉnh sửa tệp máy chủ của máy tính để xyz.com phân giải thành địa chỉ IP tĩnh của máy chủ của tôi và sau đó trỏ trình duyệt của tôi tới xyz.com:12345, nó sẽ hoạt động. Vì vậy, nó giúp tôi trở thành một phần trong đó, nhưng nó chỉ hoạt động trên các hệ thống mà tôi có thể truy cập tệp máy chủ và tôi cần nó để hoạt động trên các hệ thống mà tôi không thể làm điều đó (ví dụ: thiết bị iOS).
Vì vậy, tóm lại, tôi cần:
- yêu cầu tới myserver.biz:12345 để được chuyển tiếp đến xyz.com:443
- tên máy chủ của yêu cầu được chuyển tiếp để chỉ định xyz.com để nó sẽ được giải quyết chính xác bởi máy chủ của xyz'com
- và địa chỉ IP nguồn của yêu cầu được chuyển tiếp là địa chỉ IP của máy chủ được liệt kê trong danh sách của tôi
Có cách nào tôi có thể thực hiện điều này?
Cập nhật:
Tôi đã và đang làm việc nginx
để sử dụng để làm điều này và trong khi tôi đã cố gắng để máy chủ của mình chuyển tiếp đến nhiều trang web khác nhau, tôi không thể làm cho nó hoạt động với trang web tôi cần! Nó liên tục tạo ra một "502: Cổng xấu". Tôi không chắc điều gì sẽ xảy ra.
Cập nhật số 2:
Tôi đã quản lý để có được nginx
hầu hết làm việc. Thủ thuật là cập nhật nó lên phiên bản ổn định mới nhất và đưa proxy_ssl_server_name on;
vào định nghĩa máy chủ của tôi. Tuy nhiên, bây giờ có một vấn đề trong đó một số hình ảnh trên xyz.com không tải với trạng thái 403.
Có vẻ như 403 là do máy chủ đang cố gắng ngăn chặn liên kết nóng. Không chắc chắn làm thế nào để giải quyết điều đó tại thời điểm này ...