jstatd
을 RMI 레지스트리의 특정 포트에서 시작하려면이 경우 -p
매개 변수를 전달하면됩니다.jstatd의 두 번째 열린 포트를 강제 또는 예측하는 방법은 무엇입니까?
하지만 문제는 방화벽 규칙을 작성하거나 JVisualVM을 사용하여 Docker 컨테이너에서 실행중인 jstatd
원격지에 연결하는 데 문제가되는 두 번째 임의의 포트 (Java의 "익명 포트")를 여는 것입니다.
jstatd
source을 보면 UnicastRemoteObject.exportObject(remoteHost, 0)
이 호출되어 임의로 보이는 새로운 "익명 포트"가 열리는 것을 확인할 수 있습니다.
마지막 포트를 고정 된 포트로 강제로 전환 할 수 있습니까? 아니면 어느 포트를 선택할지 예측할 수 있습니까?
가능한 복제본 [RMI가 특정 포트 집합만을 사용하도록하려면 어떻게합니까?] (http://stackoverflow.com/questions/56687/how-do-i-ensure-that-rmi-uses-only) -a-specific-set-of-ports) – jchampemont
실제로 소켓 팩토리 충돌이 발생하지 않는 한 새로 내 보낸 객체가 레지스트리 포트와 같이 이전에 사용 된 포트를 다시 사용하게됩니다. 증거가 있니? 아니면 단지이 오독에 기초한이 질문입니까? – EJP
@EJP : 나는 당신의 코멘트를 정말로 이해하지 못한다. 나의 질문은'jstatd'를 시작하면 다른 포트가 열리고 (RMI 레지스트리 포트도) 포트를 방화벽 규칙에 넣으면 JVisualVM (예를 들어)이 원격 서버에 액세스 할 수 없습니다. –