Туннель SSH на экземпляре виртуальной машины Google Compute Engine для другого хоста и порта
Я хочу настроить туннель SSH на экземпляре виртуальной машины Google Compute Engine (Debian). Запросы на порт 80 на ВМ должны быть направлены на порт 8888 на другом хосте. (SSH использует порт 2222 на другом хосте.)
Я ввожу эту команду в ВМ:
$ sudo ssh root@mydyndnsdomain -L 80:mydyndnsdomain:8888 -p 2222 -N -4 -f
(когда я запускаю ту же команду на моем локальном сервере Linux, туннель SSH работает)
... и тогда я могу проверить, что виртуальная машина слушает порт 80 с fuser
:
$ sudo fuser 80/tcp
80/tcp: 6303
или с netstat
:
$ netstat -a | grep "LISTEN"
tcp 0 0 localhost:http *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
unix 2 [ ACC ] SEQPACKET LISTENING 3120 /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 11464 /var/run/apache2/cgisock.4602
unix 2 [ ACC ] STREAM LISTENING 4827 /var/run/acpid.socket
Но когда я просматриваю IP-адрес виртуальной машины, я получаю ERR_CONNECTION_REFUSED
в хроме.
(Порт 80 открыт в моей сети Google Compute Engine. Я проверил это, запустив сервер Apache2 на порту 80 и просмотрев IP-адрес виртуальной машины. Это сработало.)
Что мне здесь не хватает?
1 ответ
Я предполагаю, что подключение к вашему внешнему IP с вашего NAS не работает из-за вашего домашнего маршрутизатора. Как насчет sudo ssh root@mydyndnsdomain -L 80:127.0.0.1:8888 -p 2222 -N -4 -f
?