listen tcp 127.0.4.1:2040: bind: невозможно назначить запрошенный адрес - PullRequest
2 голосов
/ 09 мая 2020

Я использую этот golang код:

l, err := net.Listen("tcp", "127.0.4.1:2040")

if err != nil {
    log.Fatal("d0b9184a-5248-413e-a5a8-30fea66997f5:", err)
}

log.Fatal(s.Serve(l))

Я получаю эту ошибку:

слушайте tcp 127.0.4.1:2040: bind: cannot assign запрошенный адрес

кто-нибудь знает, почему это не сработает?

1 Ответ

0 голосов
/ 19 мая 2020

Вы должны добавить дополнительный IPv4-адрес в интерфейс обратной связи:

sudo ifconfig lo0 alias 127.0.4.1

Перед запуском команды вы можете проверить маршруты, используя:

netstat -nr

По умолчанию (в MacOS Catalina 10.15.4) присутствуют следующие маршруты:

127                127.0.0.1          UCS            lo0
127.0.0.1          127.0.0.1          UH             lo0

После того, как вы добавили желаемый адрес в интерфейс обратной связи (например, lo0), netstat -nr отобразит:

127                127.0.0.1          UCS            lo0
127.0.0.1          127.0.0.1          UH             lo0
127.0.4.1          127.0.4.1          UH             lo0

Теперь попробуйте использовать вашу программу, она должна работать.

Кроме того, это временно. Он не сохраняется при перезагрузке. Для этого дайте этому читать !

...