나는 역방향 터널을 이렇게 설정했다 :
function startconn () {
ssh -N -b ${SRCIP} -X -R ${REMOTEIP}:${REMOTEPORT}:${LOCALIP}:${LOCALPORT} root@${REMOTEIP} &
SSHPID=$!
echo "$SSHPID" > $PIDFILE
echo "Forwarding port ${REMOTEPORT} at ${REMOTEIP} to ${LOCALIP}:${LOCALPORT}"
}
SRCIP 네트워크를 통해 사용할 수있는 백업 링크를 통해 REMOTEPORT @ REMOTEIP을 전달합니다 (SRSIP가 192.168.5.2 인 보조 NIC가 192.168.5.1의 백업 링크 게이트웨이에 연결됨).
잘 작동하지만 문제가 있습니다. ssh 연결이 끊어진 경우 (예 : 게이트웨이 등의 재시작에 의해 일반적으로 역방향 터널 ssh 세션의 TCP / IP 연결을 끊는 모든 것, REMOTEIP에서 sshd 프로세스가 걸려서이 포트 (30200는 REMOTEPORT)에 역방향 터널을 재설정하는 것을 방지합니다.
netstat -anp | grep 30200
tcp 0 0 0.0.0.0:30200 0.0.0.0:* LISTEN 8772/sshd: root
내가 지금 볼 수있는 유일한 실행 가능한 솔루션은 REMOTEIP에 대한 연결이 끊어져서 로그온하는 재접속 스크립트이며 역방향 터널을 다시 설정하기 전에 sshd 프로세스를 "수동으로"종료하는 것입니다.
원격 sshd 프로세스가 REMOTEIP 포트를 차단하는 것을 방지하는 더 똑똑한 / 덜 성가신 방법이 있습니까?