我现在有:
- 公网服务器一台host1
- 内网计算机一台host2
- 内网计算机另一台host3
其中host3运行了一个监听127.0.0.1:5000的HTTP服务(别的也可以, FTP等要小心)。
我需要在host2访问host3的这个HTTP服务, 可以在host2使用ssh的-L命令
ssh -L 5001:127.0.0.1:5000 用户名@host3
然后在host2访问127.0.0.1:5001就可以了。这个命令的意思是, 将到host2的5001端口的请求, 通过ssh链路, 通过host2和host3, 转发到相对于host3来说的127.0.0.1的5000端口。
我需要开放这个服务给外网的话, 可以在host3使用ssh的-R命令
ssh -R 5001:127.0.0.1:5000 用户名@host1
然后在其他计算机访问host1:5001就可以了。这个命令的意思是, 将到host1的5001端口的请求, 通过ssh链路, 通过host1和host3, 转发到相对于host3来说的127.0.0.1的5000端口。
实际上, 其他计算机有可能并不能访问host1:5001, 详情请见这里。
发表评论