Я подключаюсь с помощью openssh к удаленному серверу, на котором запущен веб-сервер, к которому мне нужно получить доступ, как будто с самого сервера. Поэтому я использую ssh-туннелирование, вот так:
sudo ssh -L 80:127.0.0.1:7065 me@remote.server
На моем Mac netstat теперь показывает:
$ netstat -na|grep 80.*LIST
tcp4 0 0 127.0.0.1.80 *.* LISTEN
tcp6 0 0 ::1.80 *.* LISTEN
(И я проверил это раньше, ничего не слушал на этих портах.) Тем не менее, если я пытаюсь подключиться с помощью Telnet к порту 127.0.0.1 80, я получаю это:
$ telnet 127.0.0.1 80
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
Если вместо этого я подключаюсь к ::1 (IPv6), я получаю соединение, как и ожидалось. Добавление -4 к команде IPv4 telnet не имеет значения.
Я обнаружил это, потому что я только добавил имя сервера в /etc /hosts с адресом 127.0.0.1, а не для ::1, поэтому доступ из браузера не удался. Добавление имени для ::1 решило непосредственную проблему с навигацией по сайту из браузера, но я все еще озадачен этой проблемой и не смог найти причину.
Я использую Mac OS X 10.8.5.
Приложение: Я только что попытался переадресовать другую службу (порт 22, SSH) на различные локальные порты (включая порт 25, другой привилегированный порт) на моей машине. Все работало нормально, кроме порта 80. Так что это странность, связанная с портом 80 на моей машине.