我想在Google Compute Engine VM实例(Debian)上配置SSH隧道。应将VM上端口80的请求定向到不同主机上的端口8888。 (SSH在另一台主机上使用端口2222.)
我在VM中输入此命令:
$ sudo ssh root@mydyndnsdomain -L 80:mydyndnsdomain:8888 -p 2222 -N -4 -f
(当我在本地Linux服务器上运行相同的命令时,SSH隧道工作)
...然后我可以验证VM是否正在使用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地址时,我会在Chrome中获得ERR_CONNECTION_REFUSED
。
(端口80在我的Google Compute Engine网络中打开。我通过在端口80上运行Apache2服务器并浏览到VM的IP地址来验证这一点。它工作正常。)
我在这里缺少什么?
答案 0 :(得分:0)
我认为由于您的家用路由器,从您的NAS连接外部IP无法正常工作。
那么sudo ssh root@mydyndnsdomain -L 80:127.0.0.1:8888 -p 2222 -N -4 -f
呢?