使用SSH进行端口转发

我现在有:

  1. 公网服务器一台host1
  2. 内网计算机一台host2
  3. 内网计算机另一台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, 详情请见这里

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/5904QrCode