!["모든" 주소를 수신하는 프로세스에서 루프백 인터페이스 또는 주소를 제외합니다.](https://linux55.com/image/55844/%22%EB%AA%A8%EB%93%A0%22%20%EC%A3%BC%EC%86%8C%EB%A5%BC%20%EC%88%98%EC%8B%A0%ED%95%98%EB%8A%94%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%97%90%EC%84%9C%20%EB%A3%A8%ED%94%84%EB%B0%B1%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%20%EB%98%90%EB%8A%94%20%EC%A3%BC%EC%86%8C%EB%A5%BC%20%EC%A0%9C%EC%99%B8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
호스트의 실제 이름과 서비스에서 실제로 사용하는 포트를 사용하여 SOCKS 프록시를 통해서만 액세스할 수 있는 호스트에서 실행되는 일부 서비스에 연결할 수 있는 설정을 만들려고 합니다. 서비스는 변경할 필요가 없으며 작동합니다.) 이를 위해 다음 단계를 따릅니다.
- 서비스를 실행하는 호스트에 액세스할 수 있는 중간 호스트에 대한 SSH 연결을 사용하여 SOCKS 터널을 엽니다.
fc00::1
사용하지 않는 일부 IPv6 주소를 루프백 장치에 할당합니다(예:).socat
해당 주소에 액세스하고 연결 요청을 SOCKS 프록시로 전달하려는 서비스에서 사용되는 포트를 엽니다 ./etc/hosts
액세스하려는 호스트에 대한 항목과 루프백 장치에 할당된 주소를 추가합니다.
이 모든 단계를 자동화할 계획입니다. 이것은 한 가지 문제를 제외하고는 완벽하게 작동합니다. 내 로컬 컴퓨터에서 실행되는 많은 서비스는 원격 호스트에서 액세스하려는 것과 동일한 포트(예: SSH, HTTP...)를 사용하며 적어도 기본적으로 모든 인터페이스를 수신합니다(예: "모든" 주소 0.0.0.0
/ ::0
). 이렇게 하면 다른 프로세스가 특정 주소에서도 동일한 포트를 열지 못하게 됩니다. 원래 루프백 주소( 127.0.0.1
/ ::1
)만 수신하도록 재구성할 수 있는 일부 서비스가 있지만 SSH와 같은 일부 서비스의 경우 이는 의미가 없으며, 내가 사용하는 일부 사용자 영역 애플리케이션의 경우 어떤 포트를 사용하여 열었는지에 대한 이벤트 제어가 없습니다. 어느 주소.
생각할 수 있는 한 가지 해결책은 청취 소켓을 열 때 "모든" 주소를 지정하는 프로세스가 해당 주소를 사용하지 않도록 인터페이스(두 번째 루프백 장치를 만들 수 있음) 또는 주소를 표시할 수 있는 경우입니다.
이것이 가능합니까, 아니면 이 문제를 해결할 다른 방법이 있습니까?