SSH 터널이 작동하지 않는 이유 찾기

SSH 터널이 작동하지 않는 이유 찾기

문제없이 SSH를 사용할 수 있는 원격 서버가 있습니다. 원격 서버('enc'라고 함)와 로컬 컴퓨터에 PostgreSQL(ps)이 설정되어 있으며 둘 다 5432(기본값)에서 실행됩니다. 원격 서버는 외부 연결로부터의 연결을 허용하지 않습니다(로컬 웹 서버가 직접 연결됨).

파일을 복사하고 서버에 로그인하여 수동으로 실행하는 것보다 원격 ps 서버에서 명령을 더 쉽게 실행할 수 있도록 SSH 터널을 설정하려고 합니다.

다음 명령을 실행해 보았습니다.

ssh -N -L 5555:enc:5432 enc

터널이 올바르게 설정된 것처럼 보이지만 다음을 사용하여 원격 시스템에 연결하려고 하면

psql -p 5555

작동하지 않는다고 하네요

psql: could not connect to server: No such file or directory. Is the server running locally and accepting connections on Unix domain socket "/run/postgresql/.s.PGSQL.5555"?

이것이 터널 설정이나 제한된 사용자 권한에 문제가 있을 가능성이 있습니까?(그렇다면 오류가 다를 것이라고 생각합니다)?

답변1

이 시도:

ssh -N -L 5555:enc:5432 localhost

그런 다음

lsof -i :5555

거기에 아무것도 표시되지 않으면 로컬 컴퓨터가 아무 것도 듣고 있지 않은 것입니다.

답변2

유형

netstat -anp | grep LISTEN | grep "port_number"

서버 시스템에서 서비스가 실행 중인 IP 주소를 찾으세요.

머신의 IP 주소인 경우 ssh -L 명령에서 이를 언급해야 하며, 루프백 주소(127.0.0.1 - ipv4 또는 ::1 - ipv6 )인 경우 명령에서 이를 언급해야 합니다.

답변3

그의 문제는 더 아래쪽에 있는 것으로 밝혀졌습니다. 터널은 올바르게 작동하지만 postgres에 연결을 시도하려면 -h를 전달해야 합니다(로컬 호스트의 경우에도 마찬가지임). 그렇지 않으면 TCP(오류가 발생한 바로 그 위치에 있음)를 통해 연결을 시도하고 TCP(이는 오류가 발생함)를 통해 연결을 시도합니다. 터널에서 작동하는 유일한 방법입니다.)

관련 정보