내 목표는 공개 서비스와 상호 작용할 수 있는 다른 관리 UI를 유지하면서 내 VPS에서 특정 포트와 서비스를 공개적으로 호스팅할 수 있는 솔루션을 찾는 것입니다.
지금까지 내 솔루션은 공용 도커 포트를 호스트 로컬 루프백 주소에 바인딩하고 SSH 터널을 사용하여 다시 연결하는 것입니다. 여기는일했다곧 포트 충돌이 발생할 수 있지만(그리고 내 ssh 명령은 점점 더 길어집니다).
분할 터널링 VPN을 활용하여 많은 관리 UI에 연결하는 동시에 역방향 프록시를 사용하여 공용 트래픽을 특정 Docker 포트로 전달할 수 있는 격리된 Docker 네트워크를 만들고 싶습니다. 이상적으로는 Docker 컨테이너 내에서 Wiregaurd를 사용하고 Wireguard-UI 또는 Firezone과 같은 도구를 활용하여 클라이언트 구성을 단순화하고 싶습니다.
이를 복잡하게 만드는 것은 Docker가 iptables와 상호 작용하는 방식입니다. 이 작업을 수행하기 위한 일반적인 단계별 가이드가 있는 경우 알려주시기 바랍니다.
또한 Authelia와 같은 몇 가지 대안도 고려했지만 가능하면 일반 네트워크를 통해 구성 인터페이스에 대한 액세스를 허용하지 않는 것이 좋습니다.
답변1
마침내 작동하는 솔루션을 얻었습니다. 분명히 UFW는 또한 다른 네트워크 간에 라우팅할 때 방해가 되는 것을 좋아합니다.
해결책:
- VPS에 직접 WireGuard를 설치하고 구성합니다.wiregaurd-ui, VPS의 로컬 호스트에 바인딩할 추가 환경 변수를 추가합니다(ssh는 포트를 내 컴퓨터로 다시 전달합니다. 자주 실행할 계획은 없습니다).
- 다음 docker 네트워크 서브넷에 대해 적절한 "허용된 IP" 필드를 사용하여 클라이언트를 구성합니다.
- 새로운 도커 네트워크를 생성하고 시작하세요.네트워크 다기능 도구네트워크에 연결된 컨테이너. 호스트에 바인딩된 포트가 없습니다. 내장형 Apache 서버와 광범위한 네트워크 테스트 도구가 함께 제공됩니다.
- IPv4 전달이 활성화되어 있는지 확인하십시오가상 사설 서버그리고극세사 묶음(활성화 후 VPS를 다시 시작하십시오).
ufw route allow in on <wg0> out on <docker bridge interface>
ufw의 포트 전달 및 다시 로드를 허용하도록 UFW 규칙을 설정합니다 .- Multitool 컨테이너를 실행하고 tcpdump 포트 80을 시작합니다. 로컬 컴퓨터에서 Wireguard 인터페이스를 시작하고 컨테이너 내부 IP 주소로 연결하여 연결을 확인했습니다.