내 질문이 멍청하지만 두 가지를 이해할 수 없다면 죄송합니다. 내가 여기에 쓴 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는 실제로 이해가되지 않습니다 … 컴퓨터와 컴퓨터 사이를 터널링 할 때 …