首页 > 技术文章 > ssh两条命令,实现内网穿透

dantefung 2019-08-02 02:42 原文

ssh两条命令,实现内网穿透

ssh的功能灰常强大,除了平时用于终端,其实还有一些更实用的功能。比如本地/远程端口转发,动态端口转发 等。本文介绍的就是基本ssh的端口的本地/远程端口转发,实现内网穿透的实战

先决条件

  1. 你需要要有一台 公网的服务器 (有没有域名都可以,但需要有公网可访问的ip噢)[后文用 ali‐yun 作为公网标记]
  2. 家里/公司有一台可以连接至外网的机器[后文用 house 作为标记]

实战

方法一:

这种是一种比较复杂的方法

配置思路:在 house上做到 阿里云服务器的反向代理;在 B 机器上做正向代理本地端口转发。

  1. house机器利用ssh -R,建立通道
ssh -R 8081:localhost:8443 用户名@阿里云的ip

根据提示输入密码.到这里house的8443端口已经映射到阿里云服务器的8081端口,可以在通过服务器的8081(记得去ECS开启安全组)端口访问house的8443端口,但注意只支持阿里云服务器本地访问。

  1. ali-yun机器利用ssh -L,将本机端口共享出去

note: 建立阿里云服务器上的正向代理用作本地转发(在阿里云服务器上操作)因为绑定后的端口只支持服务器B本地访问,所以我们需要把已经映射的端口转发出去。

ssh -L *:8081:localhost:8082 root@localhost

现在可以通过阿里云服务器的8081端口访问到house的8443端口。

方法二:

**直接建立一个可对外访问的连接 **

  1. 修改公网机器的/etc/ssh/sshd_config
GatewayPorts yes  
  1. 重启sshd服务
systemctl restart sshd 
  1. house 机器直接建立连接
ssh -R 8081:localhost:8443 用户名@阿里云的ip

推荐阅读