我正在尝试在本地计算机和远程虚拟机之间启用本地端口转发。此虚拟机内部运行一个 docker 容器,该容器公开端口 7070。本质上,我希望该公开端口上发生的所有事情都通过 ssh-tunnel 中继到我的本地计算机。
$ docker ps
> PORTS
> 0.0.0.0:7070->7070/tcp, :::7070->7070/tcp
然后我从本地机器执行
$ ssh -N -f user@destination_ip -L localhost:7070:localhost:7070 -v
验证后返回以下内容:
debug1: Local connections to localhost:7070 forwarded to remote address localhost:7070
debug1: Local forwarding listening on 127.0.0.1 port 7070.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on ::1 port 7070.
debug1: channel 1: new [port listener]
debug1: Requesting [email protected]
debug1: forking to background
debug1: Entering interactive session.
debug1: pledge: filesystem
试
$ curl localhost:7070
在我的本地机器返回
debug1: Connection to port 7070 forwarding to localhost port 7070 requested.
debug1: channel 2: new [direct-tcpip]
curl: (52) Empty reply from server
在远程机器它返回
curl: (56) Recv failure: Connection reset by peer
在远程计算机上尝试确定是什么阻止了端口 7070
$ sudo netstat -plant | grep 7070
返回
tcp 0 0 0.0.0.0:7070 0.0.0.0:* LISTEN 14231/docker-proxy
tcp6 0 0 :::7070 :::* LISTEN 14238/docker-proxy
如果这很重要的话,我正在远程运行 centos 7