서버에서 로컬 컴퓨터 B로 들어오는 TCP 패킷을 리디렉션하려고 합니다.
로컬 컴퓨터 A( )의 애플리케이션 클라이언트가 192.168.0.7
서버( 1.2.3.4
)에 연결되므로 서버에서 들어오는 모든 TCP 패킷은 포트 38xx를 통해 로컬 컴퓨터 A에 도달합니다.
192.168.0.20
로컬 컴퓨터 A 대신 서버에서 로컬 컴퓨터 B()로 패킷을 리디렉션하는 방법은 무엇입니까 ?- 그런 다음 로컬 컴퓨터 B에서 서버로 패킷을 다시 보내되 로컬 컴퓨터 A에서 온 것처럼 보이게 하려면 어떻게 해야 합니까?
나는 다음을 시도했습니다 :
- 파일을 편집하여 포트 전달을 활성화합니다
sysctl.conf
. - IP 테이블 명령을 실행합니다.
iptables -t nat -A PREROUTING -d 192.168.0.7 -p tcp -m tcp --dport 38xx -j DNAT --to-destination 192.168.0.120:38xx
iptables -t nat -A POSTROUTING -j MASQUERADE
그러나 Wireshark를 사용하여 트래픽을 분석해도 아무런 결과가 나오지 않는 것 같습니다.
매우 감사합니다.
답변1
전달 트래픽:[client] --> [proxy] --> [server-A] --> [server-B]
왕복 교통편:[server-B] --> [server-A] --> [proxy] --> [client]
트래픽이 이와 같아야 한다면 server-A
전달 및 위장 트래픽을 구성해야 합니다. server-A
에서 트래픽이 수신 되면 proxy
으로 전달됩니다 server-B
.
server-B
IP는 이지만 다음과 같이 192.168.0.20
가정합니다 server-A
.
eth0 is facing the proxy
eth1 is facing server-B
TCP 3800 is listening on server-A and server-B respectively
에서 server-A
다음을 수행합니다.
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3800 -j DNAT --to-destination 192.168.0.20:3800
$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE