안녕하세요, 프로젝트를 위해 회사 데이터 센터에 서버가있는 상황입니다. 포트 22에서이 시스템에 대한 SSH 액세스 권한이 있습니다.이 서버에서 실행중인 일부 가상 시스템이 있으며 다른 많은 운영 체제가 작동하는 모든 작업의 뒷면에 있습니다. 이제 데이터 센터 방화벽 뒤에 있기 때문에 관리자는 인터넷을 통해 많은 사람들이 이러한 가상 머신에 직접 액세스 할 수 있도록 할 수있는 방법을 물었습니다. 22가 아닌 다른 포트에서 트래픽을 허용 한 경우 포트 전달을 수행 할 수 있습니다. 그러나 나는 이것이 허용되지 않기 때문에이 경우 해결책이 될 수 있습니다. 연결하려는 사람들은 완전한 바보 일 수 있습니다. 누구의 퍼티를 기계로 열어서 행복하거나 파일 질라 일 수도 있습니다.
내 방화벽이나 22 이외의 다른 포트에는 방화벽이 없으며 실제로 요청하더라도 열 수 없습니다 .2 배 SSH는 관리자가 원하는 것이 아닙니다.
답변
컴퓨터에서 데이터 센터의 서버로 ssh 터널을 열어야합니다. 이 이름을 “server1″이라고하겠습니다. openssh를 사용하는 경우 바로 실행할 수 있습니다.
ssh -L0.0.0.0:8080:localhost:8080 you_username@server1
그러면 포트 8080의 컴퓨터에서 서버, 포트 8080으로의 연결이 열리고 방화벽은 건너 뜁니다. 아파치가 포트 8080에서 수신 대기한다고 가정합니다. 포트 전달 형식이 수신 대기 중입니다. IP : 로컬 포트 : 원격 주소 : 원격 포트. 물론 단일 서버의 경우에도 사용할 수 있습니다
ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1
-L 매개 변수의 localhost는 server1과 관련되어 있습니다. 다시 말해, 서버는 실제로 ssh 연결을 통해 컴퓨터에서 들어오는 로컬 호스트에서 연결을보고 있습니다.
당신은 또한 매개 변수가 필요합니다
AllowTcpForwarding yes
서버의 ssh 구성 (일반적으로 / etc / ssh / sshd_config)
그런 다음 다른 사용자가 포트 8080에서 컴퓨터에 연결하여 Apache Reverse Proxy를 통해 연결할 수 있습니다. 일반 프록시가 필요한 경우 (사용자가 Apache 구성의 특정 주소가 아닌 주소를 선택할 수 있음) server1에 오징어를 설치하고 ssh tunnel을 사용하여 오징어 포트를 사용해야합니다.