![하나의 호스트 이름을 다른 호스트 이름으로 인식하도록 운영 체제를 속이는 방법](https://linux55.com/image/14781/%ED%95%98%EB%82%98%EC%9D%98%20%ED%98%B8%EC%8A%A4%ED%8A%B8%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%ED%98%B8%EC%8A%A4%ED%8A%B8%20%EC%9D%B4%EB%A6%84%EC%9C%BC%EB%A1%9C%20%EC%9D%B8%EC%8B%9D%ED%95%98%EB%8F%84%EB%A1%9D%20%EC%9A%B4%EC%98%81%20%EC%B2%B4%EC%A0%9C%EB%A5%BC%20%EC%86%8D%EC%9D%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나는 3 대의 기계를 가지고 있습니다 :
A.local ---> B.example.com
---> C.local
C.local
5000
B.example.com
에이전트(원격 Docker 레지스트리)의 포트(로컬 Docker 레지스트리)에서 서비스를 실행하는 Docker 컨테이너 입니다 .
C.local
에 도달하려고 할 때 확인/연결 되도록 A를 어떻게 구성합니까 B.example.com
?
이것이 가능한지, OSI의 어느 계층에서 확실하지 않습니다. DNS를 사용하고 싶지만 /etc/host
하드코딩된 IP 주소만 할당할 뿐입니다. 충분한가 ?
iptables
결과적으로 A는 B를 것처럼 처리 original-B.example.com
하고 이를 C로 대체해야 하며, 이는 로 처리됩니다 B.example.com
.
이 방법 C.local:5000
으로 연결 해야 합니다 B.example.com
(포트 443에서,내가 올바르게 이해했다면)
답변1
세 머신 모두에 SSH가 있는 경우 다음을 수행할 수 있습니다.
[email protected] $ ssh -J B.example.com -L 5555:127.0.0.1:5000 C.local
C.local:5000
연결이 활성화된 동안 액세스를 통해 연결할 수 있습니다 127.0.0.1:5555
(5555는 임의임).
무너지다
ssh
-J B.example.com
: B.example.com을 통한 프록시 점프(C로 전달하기 전에 B에 로그인해야 함)-L 5555:127.0.0.1:5000
, 로컬 포트를127.0.0.1:5555
최종 대상 포트 5000에 바인딩합니다.C.local
: 최종 목적지