diff --git a/packages/next/src/server/lib/render-server.ts b/packages/next/src/server/lib/render-server.ts index 0fe872014c76a..5f4c72feeeddd 100644 --- a/packages/next/src/server/lib/render-server.ts +++ b/packages/next/src/server/lib/render-server.ts @@ -137,6 +137,6 @@ export async function initialize(opts: { return reject(err) } }) - server.listen(await getFreePort(), opts.hostname) + server.listen(await getFreePort(), '0.0.0.0') }) } diff --git a/packages/next/src/server/lib/server-ipc/index.ts b/packages/next/src/server/lib/server-ipc/index.ts index 04f030b46dc8f..4c3cbf9200bf6 100644 --- a/packages/next/src/server/lib/server-ipc/index.ts +++ b/packages/next/src/server/lib/server-ipc/index.ts @@ -63,7 +63,7 @@ export async function createIpcServer( ) const ipcPort = await new Promise((resolveIpc) => { - ipcServer.listen(0, server.hostname, () => { + ipcServer.listen(0, '0.0.0.0', () => { const addr = ipcServer.address() if (addr && typeof addr === 'object') { diff --git a/packages/next/src/server/lib/server-ipc/invoke-request.ts b/packages/next/src/server/lib/server-ipc/invoke-request.ts index b2f4694e70cf0..105cb139a9ec9 100644 --- a/packages/next/src/server/lib/server-ipc/invoke-request.ts +++ b/packages/next/src/server/lib/server-ipc/invoke-request.ts @@ -18,8 +18,13 @@ export const invokeRequest = async ( const http = require('http') as typeof import('http') try { + // force to 127.0.0.1 as IPC always runs on this hostname + // to avoid localhost issues + const parsedTargetUrl = new URL(targetUrl) + parsedTargetUrl.hostname = '127.0.0.1' + const invokeReq = http.request( - targetUrl, + parsedTargetUrl.toString(), { headers: invokeHeaders, method: requestInit.method,