Hơn nữa với câu trả lời của Caleb , nếu bạn đang làm việc với phiên bản mới hơn iptables
(v1.4.14) không còn ROUTE
mục tiêu, bạn sẽ cần một cái gì đó như sau, được thử nghiệm trên Debian Wheezy *:
iptables -A PREROUTING -t mangle -p tcp ! -s 127.0.0.1 --dport 8001 -j TEE --gateway 127.0.0.1
iptables -A OUTPUT -t nat -p tcp -s 127.0.0.1/32 --dport 8001 -j DNAT --to 127.0.0.1:8002
Kiểm tra bằng cách sử dụng "netcat" ( man nc
). Trong một cửa sổ đầu cuối loại để theo dõi và nhấn Enter
phím:
nc -l 8002
Lệnh sẽ đợi đầu vào mà bạn sẽ gõ trong cửa sổ terminal thứ hai.
Trong cửa sổ thiết bị đầu cuối thứ hai, gõ như sau và bấm Enter
phím:
nc 127.0.0.1 8001
Lệnh sẽ chờ thêm đầu vào. Nhập bất cứ điều gì và nhấn Enter
phím. Sau khi bạn nhấn Enter
phím trong cửa sổ terminal thứ hai, văn bản bạn đã nhập trong cửa sổ terminal thứ hai sẽ xuất hiện trong cửa sổ terminal thứ nhất. Nhấn Ctrl
-c trong cửa sổ thứ hai để kết thúc phiên.
* Cú pháp này không được hỗ trợ trong RHEL / Centos (6.5 trở về trước) :-( vì vậy bạn cần sử dụng socat
để phát và chuyển các gói đến trên cổng ban đầu sang hai cổng mới. Nếu bạn đã xử lý nghe trên cổng nhận ban đầu thì bạn cần phải cấu hình lại chúng để nghe trên một trong các cổng tee'd như socat
bây giờ là trình nghe trên cổng ban đầu. Xem bài đăng SE này để biết ví dụ socat
cú pháp cho nhân bản cổng.
iptables
có thể quá cũ; xem Gửi các gói trùng lặp qua hai kết nối Internet.