
다음 명령을 사용하여 우분투 서버에 SSH 터널을 만듭니다.
ssh -fNg -L 8888:127.0.0.1:22 -p 1000 username@server-address -v
그런 다음 OSX http 및 https 프록시를 127.0.0.1:8888로 설정했습니다.
그리고 다음과 같은 오류가 발생했습니다.
SSH-2.0-OpenSSH_6.6.1p1 우분투-2ubuntu2
프로토콜 불일치.
문제는 무엇이며 어떻게 해결할 수 있습니까?
답변1
-L 8888:localhost:22는 로컬 포트 8888을 SSH 서버의 포트 22로 전달합니다. Squid 서버나 실행 중인 다른 프록시가 없으면 작동하지 않습니다.
SSH는 SSH 터널을 탐색하는 데 사용할 수 있는 양말 프록시를 제공할 수 있습니다.
ssh -fNg -D 8888 -p 1000 username@server-address -v
연결한 후 프록시를 설정하세요.
localhost:8888
답변2
"다음 명령을 사용하여 내 우분투 서버에 SSH 터널을 만듭니다.
ssh -fNg -L 8888:127.0.0.1:22 -p 1000 사용자 이름@서버 주소 -v
좋습니다. 그러면 포트 1000에 SSH 서버가 있어야 합니다.
좋습니다. 클라이언트 프로그램은 포트 8888에 연결하고 거기에서 보내는 모든 내용은 포트 22(22는 SSH에 일반적으로 사용되는 포트임)로 전달됩니다.
내 생각에 ssh 내에서 ssh를 터널링하려고 한다면 말이 될 것 같지만, 머리 꼭대기에서 그 필요성을 생각할 수는 없지만!
그런 다음 OSX http 및 https 프록시를 127.0.0.1:8888로 설정했습니다."
아니요, 이미 포트 8888에서 수신 대기하는 포트를 여는 SSH가 있습니다. 해당 포트에서 수신 대기 중인 다른 항목을 가질 수 없습니다.
대상 컴퓨터(서버 주소)의 포트 22에 http[s] 프록시를 배치하고 프록시 127.0.0.1:8888을 사용하도록 웹 브라우저를 구성하면 웹 브라우저는 포트 8888에 연결할 수 있으며 이는 다음으로 전달됩니다. 대상 시스템의 포트 22에 있는 http 프록시. 그렇게 하면 -L 8888:127.0.0.1:22
대상 시스템의 포트 22에서 수신 대기 중인 무언가가 있어야 함을 의미합니다. 그리고 22를 8080과 같이 좀 더 합리적인 것으로 변경하고 싶을 수도 있습니다. 테스트하지는 않았지만 작동할 것 같습니다.
또는 SSH에는 HTTP[s]를 수행할 수 있는 SOCKS 프록시 역할을 하는 -D 옵션도 있지만 웹 브라우저에 일반 HTTPS가 아닌 SOCKS 프록시에 연결하도록 지시합니다. 그래서 David가 말한 것처럼 ssh -fNg -D 8888 -p 1000 username@server-address -v
-fNg 및 -v는 물론 필수가 아니라고 생각합니다.