네트워크 네임스페이스에서 디스플레이에 액세스

네트워크 네임스페이스에서 디스플레이에 액세스

내 Fedora 21 VM에 여러 네트워크 네임스페이스가 있습니다. 네트워크 네임스페이스 내에서 디스플레이에 액세스하는 방법은 무엇입니까?

    # ip netns exec n1 xlogo
    Error: Can't open display: localhost:10.0

답변1

UNIX 소켓을 통해 X11에 액세스하는 경우 "정상적으로 작동"해야 합니다. 분명히 UNIX 도메인 소켓은 네트워크 네임스페이스에 의해 격리되지 않습니다.

오류가 발생하므로 UNIX 소켓이 아닌 TCP를 사용하고 있는 것 같습니다.

TCP를 사용하여 X11에 연결하려면 네트워크 네임스페이스 경계를 ​​넘어 다른 네트워크 서비스에 액세스하는 것과 동일한 방식으로 네트워크를 통해 트래픽을 다른 네임스페이스로 라우팅하여 수행해야 합니다. 예를 들어veth네트워크 인터페이스 쌍 생성네임스페이스 간 또는 실제 라우터를 통해 터널 역할을 합니다. 어느 쪽이든 IP 주소와 라우팅을 설정해야 합니다.

TCP 대신 UNIX 소켓을 통해 연결하도록 구성할 수 있다면 더 쉬울 수도 있습니다. 어쨌든 이것은 일반적으로 기본값입니다. 대신 ? :10이렇게 하면 UNIX를 사용하게 될 수도 있습니다. X11 서버나 프록시가 TCP 소켓에서만 수신 대기하는 경우에는 작동하지 않습니다.$DISPLAYlocalhost:10

관련 정보