OpenJDK 25에서 socksProxyVersion으로 SOCKS4 선택
OpenJDK 25에서 명시적 SOCKS 엔드포인트와 함께 문서화된 버전 속성을 사용하고, 속성이 JVM 전체에 적용되는 범위를 고려하십시오.
OpenJDK 25의 소켓 구현에서는 socksProxyVersion 속성으로 SOCKS4를 선택합니다. 애플리케이션을 시작할 때 지정할 수 있습니다:
java -DsocksProxyVersion=4 YourApplication애플리케이션은 프록시 엔드포인트를 명시적으로 제공할 수도 있습니다:
Proxy proxy = new Proxy(Proxy.Type.SOCKS,
new InetSocketAddress("proxy.example", 1080));
try (Socket socket = new Socket(proxy)) {
socket.connect(new InetSocketAddress("192.0.2.10", 80), 5000);
socket.setSoTimeout(10000);
}주소는 자리 표시자입니다. SOCKS4 프록시 목록의 인증되지 않은 주소를 허용된 공용 IPv4 테스트용 프록시 호스트와 포트로 채울 수 있습니다. 실제 대상 IPv4 주소와 포트는 별도로 사용하십시오. 이 조각은 TCP 스트림을 열고 닫습니다. 애플리케이션 프로토콜은 블록 내부의 연결된 스트림을 사용합니다.
OpenJDK 25의 구현은 생성자가 일반적인 명시적 SOCKS Proxy를 받은 경우에도 버전 속성을 확인합니다. 공용 Proxy 객체 자체에는 유형과 주소가 포함되며, 객체별 SOCKS 버전 필드는 없습니다.
버전 속성은 JVM 전체 범위를 갖습니다. 동시 워크로드가 서로 다른 SOCKS 버전을 요구한다면 개별 요청마다 앞뒤로 전환하지 마십시오. 대신 연결별로 필요한 선택을 지원하는 클라이언트 인터페이스를 사용하십시오. 오래된 JDK 예제의 private setV4 리플렉션은 지원되는 구성 인터페이스가 아닙니다.