diff --git a/vllm/utils.py b/vllm/utils.py index d7a3a3a2a9ef9..01997fed48a7c 100644 --- a/vllm/utils.py +++ b/vllm/utils.py @@ -162,9 +162,16 @@ def _async_wrapper(*args, **kwargs) -> asyncio.Future: def get_ip() -> str: + # try ipv4 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - s.connect(("8.8.8.8", 80)) # Doesn't need to be reachable - return s.getsockname()[0] + try: + s.connect(("dns.google", 80)) # Doesn't need to be reachable + return s.getsockname()[0] + except OSError: + # try ipv6 + s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) + s.connect(("dns.google", 80)) + return s.getsockname()[0] def get_distributed_init_method(ip: str, port: int) -> str: @@ -172,9 +179,16 @@ def get_distributed_init_method(ip: str, port: int) -> str: def get_open_port() -> int: - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.bind(("", 0)) - return s.getsockname()[1] + # try ipv4 + try: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind(("", 0)) + return s.getsockname()[1] + except OSError: + # try ipv6 + with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s: + s.bind(("", 0)) + return s.getsockname()[1] def set_cuda_visible_devices(device_ids: List[int]) -> None: