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.
왜 경고가 표시되나요? 연결할 수 없는 문제를 해결하는 방법은 무엇입니까?