localhost를 사용한 SSH -L 로컬 포트 ​​전달이 잘못된 페이지를 가리킴


1

내 질문이 멍청하지만 두 가지를 이해할 수 없다면 죄송합니다. 내가 여기에 쓴 expample을하고 있다고 가정 해 봅시다 .

[...] SSH 터널을 사용하여 랩톱에서 http : //www.ubuntuforums 조직 으로 연결하려고했습니다 . 소스 포트 번호 8080 (대체 http 포트), 대상 포트 80 (http 포트) 및 대상 서버 www.ubuntuforums.org를 사용합니다. :

ssh -L 8080:www.ubuntuforums.org:80 <host>

어디에서 <host>노트북의 이름으로 대체해야합니다.

Q1 : 실제로 무엇을 달성 할 수 있습니까? 원격 서버에는 사용 가능한 sshd가 없으므로 트래픽이 PC를 암호화되지 않은 상태로 유지합니까? 나는 이것을 위해 무엇이 필요할까요?

Q2 : ssh -L 4444 : linuxpl.com : 80 localhost를 시도하고 있습니다. 웹 브라우저에서 http : // localhost : 4444 를 입력하면 LiteSpeed ​​Web Server의 내부 사이트를 볼 수 있습니다. 다른 페이지를 시도하면 Apache 내부 사이트를 볼 수 있습니다. 다른 것을 시도하면이 사이트의 404 페이지를 찾을 수 없음 메시지가 표시됩니다. 그러나 일부는 예상대로 작동합니다. 왜 이런 일이 발생합니까? 고치는 방법?


1
우리는 포럼이 아니므로 향후 방문자가 사용할 수 있도록하기 위해 질문 당 하나의 질문을하십시오.
Arjan

답변:


1

Q1 : 그렇게하고 싶지 않을 것입니다. 이 페이지는 말이 바보입니다. 당신이 말했듯이, 트래픽은 컴퓨터에서 컴퓨터로 암호화되어 포럼 사이트로 완전히 암호화되지 않습니다. 방화벽을 우회하는 등 다른 컴퓨터를 사용하여 트래픽을 전달하여 설명 할 수 있습니다.

튜토리얼의 의미는 " 다른 컴퓨터에서 랩톱을 통해 포럼에 연결하고 싶다" 는 것입니다.

Q2 : 컴퓨터에서 http : // localhost : 4444 / 를 열면 포럼에 HTTP 요청이 발생하지만 포럼이 localhost아닌 호스트를 원한다고 알려줍니다 linuxpl.com. 그러면 서버는 가상 호스트를 사용 localhost하고와 같은 사이트에 매핑되지 않기 때문에 원하는 실제 가상 호스트가 아닌 기본 페이지를 반환합니다 linuxpl.com.

따라서 ssh 터널을 통해 HTTP 트래픽을 전달하면 여러 번 쉽게 작동하지 않습니다. 어딘가에 프록시로 전달하면 훨씬 잘 작동합니다.

브라우저가 올바른 헤더를 보내려면 호스트 파일을 설정하여 대상 주소가 시스템임을 주장하면 성공할 수 있습니다. 이렇게하면 브라우저가 주소를 확인할 때 로컬 컴퓨터에 연결하여 HTTP 서버에 적절한 호스트 이름을 알려줍니다.

당신은 라인을 추가하여 이것을 시도 할 수 있습니다

127.0.0.1        linuxpl.com

/ etc / hosts에


페이지가 "바보"가 아닙니다. localhost하지만 말하지 않습니다 host. 이것은 완전히 유효하고 보편적으로 적용 가능한 자습서입니다.
Daniel B

@DanielB 더 나은 표현이 될 수 있습니다. 이제 노트북에서 다른 곳으로 연결하는 방법을 설명합니다. 그런 다음 localhost에 연결하라고 지시합니다. 따라서 기계는 하나뿐입니다. 따라서 터널링은 실제로 아무것도 달성하지 못합니다. 내 마음에 이것은 바보입니다. 세 번째 컴퓨터를 통해 터널링하는 방법을 설명하면 사용할 수 있습니다. 또한 OP가 알 수 있듯이이 터널링이 가상 호스트에서도 작동하지 않는다는 것을 설명하지 않습니다.
Sami Kuhmonen

아니요. 전체 자습서는 laptop연결할 수있는 컴퓨터 라는 사실을 중심으로 작성 되었습니다. 같은 기계라고 말하는 곳은 없습니다. 물론, 그럴 수도 있지만 명령 구문을 배우기 위한 튜토리얼 일뿐 입니다.
Daniel B

@DanielB " SSH 터널을 사용 하여 랩톱에서 ubuntuforums.org로 연결" 이라고 표시 되어 있습니다 . 이는 랩톱에 있고 터널을 사용하여 연결하려는 것을 의미합니다. "노트북을 통한 연결"이라고 말하지 않거나 랩탑에 대해 이야기하는 이유를 설명합니다. 어리석은 표현입니다. "컴퓨터 B를 통한 터널을 사용하여 컴퓨터 A에서 웹 사이트 X로 연결하고 싶다"고 말하면 어리석지 않습니다. 그리고 일반적으로 HTTP 프로토콜이 마음에 들지 않는다는 언급을 추가하십시오.
Sami Kuhmonen

@ user532872 달성 할 수있는 방법을 추가 한 호스트 파일
사미 Kuhmonen

0

Q1 : 인터넷에 연결되어 있지 않은 환경에서 이것을 사용하고있었습니다. 외부 세계에 연결할 수없는 네트워크에서 랩톱을 실행하고 있지만 외부 세계에 연결할 수있는 단일 컴퓨터와 랩톱이있는 네트워크가 있다고 가정 해 봅시다. 인터넷 트래픽이 인증 된 시스템을 통해 외부 네트워크로 들어가도록이 시스템으로 이동해야합니다.

연결은 다음과 같습니다. http : // localhost : 4444를 입력 하면 ssh가 요청을 받아 호스트로 보낸 다음 linuxpl.com:80으로 보냅니다. 랩톱과 호스트 간의 연결은 ssh로 암호화되고, 호스트 간의 인터넷 연결은 암호화되지 않습니다. 즉, ssh는 두 컴퓨터 간의 메시지 만 전달하고 암호화합니다.

Q2 : 문제가 무엇인지 이해하지 못하지만 ssh -L 4444 : linuxpl.com : 80 localhost는 실제로 이해가되지 않습니다 ... 컴퓨터와 컴퓨터 사이를 터널링 할 때 ...


예, 그러나 그것은 위에 링크 한 사이트가 제안한 것과 정확히 같습니다. 그렇기 때문에 내가하는 일의 요점과 일부 사이트에서 작동하지 않는 이유를 묻습니다. 제공 한 예가 다르며 게임에 3 번째 컴퓨터가 포함되어 있고 sshd를 실행한다고 가정합니다.
user532872

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