diff --git a/pkg/machine/gvproxy/gvproxy.go b/pkg/machine/gvproxy/gvproxy.go index 2c9e16aa..68619c0d 100644 --- a/pkg/machine/gvproxy/gvproxy.go +++ b/pkg/machine/gvproxy/gvproxy.go @@ -38,7 +38,7 @@ func Start(ctx context.Context, mc *vmconfig.MachineConfig) error { if err := mc.GetSSHPort(); err != nil { return fmt.Errorf("unable to get available ssh port: %w", err) } - + // gvproxy listen a local socks file as Podman API socks (PodmanSocks.InHost) // and forward to the guest's Podman API socks(PodmanSocks.InGuest). gvpCmd.AddForwardSock(mc.PodmanSocks.InHost) @@ -46,6 +46,7 @@ func Start(ctx context.Context, mc *vmconfig.MachineConfig) error { gvpCmd.AddForwardUser(mc.SSH.RemoteUsername) gvpCmd.AddForwardIdentity(mc.SSH.PrivateKeyPath) gvpCmd.PidFile = mc.PIDFiles.GvproxyPidFile + gvpCmd.SSHPort = mc.SSH.Port // gvproxy endpoint, which provide network backend for vfkit/krunkit gvpEndPoint := fs.NewFile(mc.GetNetworkStackEndpoint()) diff --git a/pkg/port/port.go b/pkg/port/port.go index 11c6ff5c..39d306f2 100644 --- a/pkg/port/port.go +++ b/pkg/port/port.go @@ -13,7 +13,7 @@ import ( // GetFree returns a free TCP port func GetFree() (int, error) { - l, err := net.Listen("tcp", fmt.Sprintf("%s:%d", define.LocalHostURL, 0)) + l, err := net.Listen("tcp4", fmt.Sprintf("%s:%d", define.LocalHostURL, 0)) if err != nil { return 0, fmt.Errorf("unable to get free TCP port: %w", err) }