Tôi thường có lệnh này để thực hiện ánh xạ cổng cục bộ
socat TCP4-LISTEN:80,fork,reuseaddr TCP4:127.0.0.1:8080
Vì vậy, bất cứ khi nào khách hàng nói chuyện với cổng 80 của máy của tôi, thì nó thực sự nói chuyện với cổng 8080.
Nó thực sự là một proxy.
Tôi tự hỏi liệu tôi có thể sử dụng iptables thay vì chạy proxy để đạt được mục tiêu tương tự hay không. Giống như, tôi đã thử lệnh sau, lệnh này không hoạt động.
iptables -t nat -A PREROUTING -d <my-ip> -p tcp --dport 80 -j DNAT --to-destination :8080
CẬP NHẬT
Lệnh trên lẽ ra phải hoạt động, nhưng nó không hoạt động, bởi vì có các lệnh khác iptables
quy luật ảnh hưởng đến nó.
Vì vậy, không có quy tắc nào khác, 3 lệnh sau đều hoạt động.
iptables -t nat -A PREROUTING -d <my-ip> -p tcp --dport 80 -j DNAT --to-destination <my-ip>:8080
iptables -t nat -A PREROUTING -d <my-ip> -p tcp --dport 80 -j DNAT --to-destination <my-ip>:8080
iptables -t nat -A PREROUTING -d <my-ip> -p tcp --dport 80 -j DNAT --to-destination <my-ip>:8080
Cảm ơn bạn @AlexD. Sau khi đọc câu trả lời của bạn, tôi đã bắt đầu lại bài kiểm tra cẩn thận hơn nhiều và tìm ra điều này. Cũng cảm ơn @Ginnungagap, CHUYỂN ĐỔI
target mà bạn chỉ cho tôi đơn giản và dễ hiểu hơn.
Câu hỏi mới
Bây giờ tôi có một câu hỏi mới dựa trên kết quả kiểm tra, trông giống như một câu hỏi SNAT
hoặc MẶT NẠ
target không cần thiết trong trường hợp của tôi, tại sao? tôi nghĩ một SNAT
là bắt buộc đối với một ADNT
quy tắc.