Google Compute Engine VM实例上的SSH隧道到不同的主机和端口

时间:2014-03-18 17:01:37

标签: google-compute-engine ssh-tunnel

我想在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

监听端口80
$ 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地址来验证这一点。它工作正常。)

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我认为由于您的家用路由器,从您的NAS连接外部IP无法正常工作。 那么sudo ssh root@mydyndnsdomain -L 80:127.0.0.1:8888 -p 2222 -N -4 -f呢?