SSH 터널 이해


15

ssh (포트 22)를 통해서만 루트 액세스 권한이있는 Linux (Ubuntu) 서버가 있습니다. 해당 서버에는 포트 3306에서 수신 대기하는 MySQL 데이터베이스가 있습니다. 퍼티 (내 컴퓨터) 및 터널링 (리눅스 컴퓨터)을 사용하여 내 컴퓨터의 로컬 포트 ​​(예 : 4000)에서 터널을 생성 할 수 있습니까? 포트 22의 Linux 서버 다음 포트 3306의 서버 자체?

답변:


20

스케치를 그렸습니다

ssh tunnel 명령이 입력 된 머신 (또는 터널링이있는 Putty가 시작된 머신)은 »host 입니다.

로컬에서 시작하는 ssh 터널


원격에서 시작하는 ssh 터널

소개

  1. 현지: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHost의미 : ssh로 연결하고 connectToHost모든 연결 시도를 라는 컴퓨터 의 로컬 sourcePort 포트 onPort로 전달하십시오. 이 포트 는 컴퓨터 forwardToHost에서 도달 할 수 있습니다 connectToHost.

  2. 먼: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHost의미 : ssh to connectToHost에 연결하고 모든 연결 시도를 원격 컴퓨터 로 전달하여 로컬 컴퓨터에서 도달 할 수있는 컴퓨터의 sourcePort포트 onPort로 전달하십시오 forwardToHost.

당신의 예

첫 번째 이미지는 상황을 나타냅니다. 파란 상자 는 내 이미지에서 your host호출 remotehost된 우분투 서버에 퍼티를 시작하는 Windows 컴퓨터입니다 . 녹색 포트 (귀하의 포트 번호 4000)에 대한 연결 3306localhostUbuntu 서버 시스템 (즉, Ubuntu 서버 자체) 의 분홍색 MySQL 포트 로 전달됩니다 .

퍼티로 설정하려면

퍼티를 시작하고 일반적인 연결 설정 (호스트 이름 또는 IP 주소)을 입력하십시오. 왼쪽의 트리에서

연결 → SSH → 터널

소스 포트 (이미지에서 123)와 대상 (이미지에서 localhost : 456 ) 으로 새 로컬 터널을 만듭니다 .4000localhost:3306

추가 를 클릭하는 것을 잊지 마십시오 .

그런 다음 세션으로 돌아가서 저장 을 클릭 하여 다음에 설정을 유지하십시오. 이제 저장된 연결을 사용하여 서버에 로그인 할 수 있으며 성공적으로 로그인 한 후 호스트의 포트 4000에 연결할 때마다 실제로 Ubuntu 서버의 포트 3306에 연결됩니다.

퍼티와 정방향 터널을 만들


일러스트레이션에 감사합니다. "원격"유형의 터널을 추가해 주셔서 감사합니다.
거스

1
이 답변은 굉장합니다
Mauricio Pasquier Juan Juan

2
굉장하고 매우 예시적인 답변 +1
rkachach

1
이 투표가 너무 적은 것은 부끄러운 일입니다.
Ryan Fisher

1
나는이 스케치를 좋아한다. 그림은 천 단어의 가치가 있습니다.
qartal

16

간단한 대답은 그렇습니다. 그러나 실제로 터널은 컴퓨터에서 시작됩니다. 작동 방식은 서버에 대한 SSH 연결 (보안)을 생성 한 다음 SSH가 사용자 측의 포트를 듣고 들어오는 연결을 전달하도록 지시하는 것입니다. 서버 측. 터널의 대상은 동일한 서버 일 필요는 없습니다. 다른 유효한 주소 일 수도 있습니다.이 주소는 SSH 서버 자체를 실행하는 서버가 아닌 경우 SSH 서버에서 온 것처럼 들어오는 연결을 볼 수 있습니다. 당신의 클라이언트에서.

이를 설정하려면 Putty 구성 대화 상자를 열고 서버에 액세스하는 데 일반적으로 사용하는 연결 설정을 선택한 다음 "로드"( "열기"아님)를 클릭하십시오. 그런 다음 왼쪽의 트리에서 Connection-> SSH-> Tunnels로 이동하여 소스 포트 4000과 대상 "localhost : 3306"을 사용하여 새 "로컬"터널을 만듭니다 (대상 주소는 서버에서 확인되므로, 서버 관점에서 MySQL 포트는 localhost에 있습니다. 그런 다음 "세션"으로 돌아가서 "저장"을 클릭하여 다음에 설정을 유지하십시오. 이제 저장된 연결을 사용하여 서버에 로그인 할 수 있으며 성공적으로 로그인 한 후 컴퓨터의 포트 4000에 연결할 때마다 실제로 서버의 포트 3306에 연결됩니다.

터널을 심각하게 사용하고 MS-Windows 클라이언트를 실행하는 경우 퍼티 콘솔을 사용하지 않고도 퍼티를 사용하여 터널을 쉽게 설정하고 실행하는 퍼티 터널 관리자 를 살펴 보시기 바랍니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.