когда я бегу '(sleep 1; echo flush_all; sleep 1; echo quit; ) | telnet localhost 11211'
я получил
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
OK
Connection closed by foreign host.
Приведенная выше команда делает то, что я хочу, но как насчет ::1
часть?
Программное обеспечение, прослушивающее порт 11211, не поддерживает IPv6. Поскольку localhost - это запись в файле hosts, которая сначала пытается использовать адрес IPv6, вы возвращаетесь к IPv4 только после сбоя IPv6. Вы можете решить проблему, либо обновив программное обеспечение (или правильно настроив для прослушивания IPv6, если это опция в файле конфигурации), либо изменив свою команду на telnet 127.0.0.1
вместо того telnet localhost
.
:: 1 - это адрес обратной связи IPv6, эквивалент петли IPv4 127.0.0.1.
Чтобы избежать соединения ipv6, используйте переключатель '-4':
$ telnet -4 localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
То же самое с -6:
$ telnet -6 localhost
Trying ::1...
Connected to ::1.
Escape character is '^]'.
Он работает с множеством сетевых утилит, таких как wget, curl, ssh, ...