동일한 네트워크 인터페이스에서 포트를 다른 IP 주소로 전달하는 방법은 무엇입니까?

동일한 네트워크 인터페이스에서 포트를 다른 IP 주소로 전달하는 방법은 무엇입니까?

2개의 네트워크에 3개의 시스템이 분산되어 있습니다.

  • 1개의 NIC가 있는 컴퓨터 1: IP 주소 192.168.10.22
  • 1개의 NIC가 있는 컴퓨터 2: IP 주소 192.168.10.30 및 192.168.11.30
  • 1개의 NIC가 있는 컴퓨터 3: IP 주소 192.168.11.33

컴퓨터 3에서 컴퓨터 1로의 역방향 SSH 터널을 원합니다. 컴퓨터 2에서 컴퓨터 3까지는 포트 2222를 사용해야 하고, 컴퓨터 1에서 컴퓨터 2까지는 포트 22를 사용해야 합니다. 내 경우에는 어떤 이유로 작동하지 않습니다. 내가 시도한 것은 다음과 같습니다.

컴퓨터 2에서:

$sudo sysctl net.ipv4.ip_forward
net.ipv4.ip_forward=1

# External machine connects to 192.168.11.30:22, forwarded to 192.168.10.30:2222
$sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.11.30 --dport 22 -j DNAT --to-destination 192.168.10.30:2222
$sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.30 --dport 2222 -j SNAT --to-source 192.168.11.30

# Internal machine2 connects to 192.168.10.22:2222, forwarded to 192.168.11.30:22
$sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.10.30 --dport 2222 -j DNAT --to-destination 192.168.11.30:22
$sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.11.30 --dport 22 -j SNAT --to-source 192.168.10.30

#역방향 SSH 시작:

   $ssh -N -R 2222:192.168.10.30:22 [email protected]
   Warning: remote port forwarding failed for listen port 2222

컴퓨터 3에서:

   $ssh [email protected]
   ssh connect to host 192.168.11.30 port 22: Connection refused.

왜 경고가 표시되나요? 연결할 수 없는 문제를 해결하는 방법은 무엇입니까?

관련 정보