Làm thế nào để thay đổi địa chỉ IP để trỏ đến localhost?


10

Một địa chỉ hộp cát của ứng dụng web có thể truy cập trực tiếp bằng địa chỉ IP: http://<my_ip_address>không có tên đăng nhập.

Có cách nào để tạo một máy chủ ảo trong máy cục bộ của tôi, được đặt tên là <my_ip_address>và thay đổi / etc / hosts để nó sẽ "chuyển hướng" đến localhost của tôi không?

127.0.0.1 <my_ip_address>

Vì vậy, khi tôi tải url http://<my_ip_address>, trình duyệt sẽ trỏ đến localhost của tôi? Cách tôi đã có thể chuyển hướng tên miền.

Câu trả lời:


21

Tệp máy chủ chỉ có thể được sử dụng để liên kết một tên miền với IP; nó không thể ánh xạ IP thành IP.

Thay đổi IP có thể được thực hiện bởi một tường lửa . Trên Linux, tường lửa mặc định được điều khiển bởi các lệnh iptables . "Người đàn ông iptables" là tài liệu. Google "giải thích iptables" cho các giải thích giới thiệu.

Một số liên kết:

http://linux.die.net/man/8/iptables

http://www.linuxnix.com/2009/12/iptables-in-linux-explained.html

http://blog.adityapatawari.com/2011/12/ip-packet-filtering-iptables-explained.html

Cụ thể, bạn muốn thay đổi các yêu cầu OUTGOING từ PC sang địa chỉ IP ( <my_ip_address>) để thay vào đó chúng chuyển đến một địa chỉ IP khác, trong trường hợp này là 127.0.0.1. Bạn muốn thực hiện NAT ( Dịch địa chỉ mạng ), được cung cấp "IP đích" ( <my_ip_address>ví dụ: 123,45,67,89), thay đổi nó thành "IP đích" khác (127.0.0.1).

Hãy thử điều này (ở vị trí của 123.45.67.89 , đặt ip_address rằng cần phải được thay đổi):

iptables -t nat -A OUTPUT -p all -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1

Chi tiết:

-t nat = bảng để dịch một địa chỉ này sang địa chỉ khác

-A OUTPUT = nối vào danh sách các quy tắc cho các gói được tạo cục bộ, gửi đi. CẢNH BÁO BẢO MẬT: Đảm bảo quy tắc bao gồm chỉ thị OUTPUT này. Nếu bạn không, quy tắc sẽ tạo ra một lỗ hổng bảo mật có thể xảy ra, bởi vì các gói đến từ các vị trí từ xa cũng sẽ được chuyển đến localhost.

-p all = áp dụng cho tất cả các giao thức (tcp, udp và icmp).

-d 123,45,67,89 = địa chỉ IP ban đầu mà gói tin sẽ đến (đích đến của nó).

-j DNAT = nếu quy tắc khớp (trong trường hợp này, nếu gói gửi đi có IP đích 123,45,67,89), thì xử lý nó bằng DNAT, làm thay đổi đích.

--to-Destination 127.0.0.1 = cho DNAT biết phải làm gì; thay thế đích ban đầu bằng "127.0.0.1".

(LƯU Ý: Nếu bạn gặp tình huống phức tạp hơn, chẳng hạn như chặn yêu cầu đối với các trang web cụ thể, một giải pháp thay thế có thể là sử dụng phần mềm "proxy".)


Lưu ý rằng có một mối quan tâm bảo mật ở đây. 127.0.0.1 thường được hiểu là không thể truy cập từ bất kỳ máy chủ từ xa nào. Nếu bạn thay đổi điều đó mà không thêm bộ lọc, bạn có thể vô tình đánh bại một biện pháp bảo mật.
Slartibartfast

@Slartibartfast - Lưu ý rằng chúng tôi chỉ thay đổi các yêu cầu NGOÀI RA. Và chúng tôi đang thực hiện thay đổi trong tường lửa trên PC này. (Một số yêu cầu, có thể đã đi ra một trang web bên ngoài, chúng tôi đang lặp lại chính chúng tôi.) Điều này không thay đổi các yêu cầu TĂNG CƯỜNG, vì vậy nó không ảnh hưởng đến những gì mà bất cứ ai từ xa có thể nhìn thấy / làm. Với điều này, bạn vẫn thấy một mối quan tâm bảo mật?
ToolmakerSteve

1
... Biện pháp an toàn thiết yếu, là bao gồm "-A ĐẦU RA" trong quy tắc. Theo nhận xét của bạn, mọi người cần lưu ý rằng OMITTING sẽ có mối nguy hiểm mà bạn mô tả. Tôi sẽ thêm một bình luận để nhấn mạnh điều này.
ToolmakerSteve

3
Nó hoạt động tốt nhưng tôi không thể thấy nó được liệt kê ở bất cứ đâu iptables --list hoặc --list-quy tắc. Làm thế nào tôi có thể liệt kê nó và xóa nó sau khi không còn cần thiết?
Filip Stefanov

@FilipStefanov (Bit cuối tôi biết!): Danh sách các quy tắc nat với một số bên cạnh họ: iptables -t nat --list --line-numbers Sau đó xóa mà không bao giờ cai trị bởi con số đó: iptables -t nat -D OUTPUT <number>
Richard Walton
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.