localhost를 사용한 SSH -L 로컬 포트 ​​전달이 잘못된 페이지를 가리킴 멍청하지만 두 가지를 이해할 수 없다면 죄송합니다.

내 질문이 멍청하지만 두 가지를 이해할 수 없다면 죄송합니다. 내가 여기에 쓴 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 페이지를 찾을 수 없음 메시지가 표시됩니다. 그러나 일부는 예상대로 작동합니다. 왜 이런 일이 발생합니까? 고치는 방법?



답변

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

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

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

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

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

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

127.0.0.1        linuxpl.com

/ etc / hosts에


답변

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

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

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