美文网首页
ssh隧道穿越内网访问局域网内主机

ssh隧道穿越内网访问局域网内主机

作者: liuchungui | 来源:发表于2020-05-12 22:44 被阅读0次

最近,由于新冠肺炎影响,我们都在家办公。但是,小伙伴需要本地电脑访问我家里局域网内的数据服务器,刚开始我们使用了teamviewer,但感觉不是很安全,于是我们研究了下通过ssh隧道穿越来进行访问。

如下图所示,我们的需求是本地主机192.168.1.100能通过ssh远程登录另一个局域网下的目标主机192.168.3.87,为了达到这个目标,我们需要一个拥有公网ip的代理服务器47.55.38.19,来做ssh的端口转发。

image.png

下面,我们分别对代理服务器、目标主机和本地主机进行配置。

一、配置代理服务器

1、开放端口

代理服务器我用的是阿里云服务器,后面我会用到端口10022进行转发,所以需要在阿里云上开放这个端口,进入安全组,添加一条访问规则,如下所示:

image-20200512221252191.png

2、修改ssh配置文件

编辑/etc/ssh/sshd_config文件

$ vim /etc/ssh/sshd_config

在sshd_config中添加一条配置,打开转发功能,如下:

GatewayPorts yes

wq保存好以后,重启ssh

service ssh reload

二、配置目标主机

非常简单,执行下面命令就行了

$ ssh -T -f -N -g -R :10022:127.0.0.1:22 root@47.55.38.19

这条命令的作用是:

  1. 建立一条ssh连接,目标主机192.168.3.87连接上代理服务器47.55.38.19
  2. 如果有其他ssh客户端连接到代理服务器47.55.38.19的10022端口上时,则代理服务器会将这条连接转发到目标主机192.168.3.87上

在目标主机192.168.3.87上通过下面命令查看是否建立连接:

$ ps -ef | grep ssh
root    3050     1  0 13:47 ?        00:00:01 ssh -T -f -N -g -R :10022:127.0.0.1:22 root@47.55.38.19

三、本地主机连接目标主机

当代理服务器和目标主机配置好以后,我们就可以使用本地主机192.168.1.100连接目标主机了,命令如下:

# 通过test用户登录到目标主机
$ ssh -p 10022 test@47.55.38.19

需要注意的是:test是目标主机192.168.3.87的用户,而不是代理服务器的用户,代理服务器只是做了一个ssh转发。所以,我们登录时的密码或者无密码登录,都与目标主机配套的。

遇到问题

1、登录时超时了,没任何反应

这是因为我刚开始配置时,没有在阿里云上开启10022端口。

2、ssh: connect to host 47.55.38.19 port 10022: Connection refused

这是因为我们没配置好ssh,编辑/etc/ssh/sshd_config文件,将GatewayPorts设置为yes,并且重启ssh

service ssh reload

然后在目标机192.168.1.100上,关闭以前的转发,重新开启新的。

$ ps -ef | grep ssh
rooot    3050     1  0 13:47 ?        00:00:01 ssh -T -f -N -g -R :10022:127.0.0.1:22 root@47.55.38.19

# 关闭以前连接
$ kill -9 3050

# 开启新的连接
$ ssh -T -f -N -g -R :10022:127.0.0.1:22 root@47.55.38.19

ssh转发命令知识点

命令如下:

$ ssh -T -f -N -g -R :10022:127.0.0.1:22 root@47.55.38.19

各个选项参数作用如下:

  • -T 不分配伪终端;
  • -f 使 ssh 进程在用户输入密码之后转入后台运行;
  • -N 不执行远程指令,即代理服务器不需执行指令,只作端口转发;
  • -g 允许代理服务器连接到本地转发端口;
  • -R 将代理服务器指定端口上的连接转发到本机端口;
  • root@47.55.38.19
    表示使用代理服务器47.55.38.19的用户root 来连接;
  • :10022:127.0.0.1:22
    表示本机回环接口(127.0.0.1,也可使用本机其他网络接口的地址,比如以太网 IP 或 WiFi IP)的 22 端口连接到远程主机的 10022 接口,因远程主机 10022 绑定的地址为空,所以远程主机会监听其所有网络接口的 10022 端口。

参考:

利用SSH隧道技术穿越内网访问远程设备

SSH隧道技术----端口转发

相关文章

  • ssh隧道穿越内网访问局域网内主机

    最近,由于新冠肺炎影响,我们都在家办公。但是,小伙伴需要本地电脑访问我家里局域网内的数据服务器,刚开始我们使用了t...

  • 自己本机Jenkins从外网访问

    外网访问内网Jenkins 内网主机上安装了Jenkins,只能在局域网内访问,怎样从公网也能访问本地Jenkin...

  • 搭建ssh反向隧道

    实现外网利用ssh反向隧道访问内网主机 准备 实现内网穿透都需要一台外网主机,而且是可以访问的 内网主机A IP:...

  • frp内网穿透

    1-内网穿透 内网穿透即内网映射,可以将局域网变公网,从而可以让外网访问本地局域网内的服务。内网穿透原理技术有这么...

  • 使用SSH反向代理和端口转发

    一 为什么使用SSH代理? 我们访问局域网内的主机时,一般的做法是将要访问的服务的端口映射到防火墙(公网IP)上的...

  • 公司服务器从重装到内网穿透共享

    我以前写过一遍文章提到了类似ngork的内网穿透知识,当时知识一点点理解了局域网内某主机访问了另一主机的某个端口即...

  • linux 下内网渗透一

    内网渗透原理 arp 协议:在局域网内如果主机A要向主机B发送报文,会先查询本地的arp缓存表找到主机B的IP地址...

  • 内网透传frp使用分享

    内网透传,简单的一句话就是让外部的互联网主机,可以访问你局域网内的机器上的HTTP,HTTPS,TCP或UDP服务...

  • 建站第五篇 使用frp实现内网穿透

    原文传送门 1 什么是内网穿透 简单来说,内网穿透是一种实现不同局域网内的主机之间通过互联网进行通信的技术。 内网...

  • 使用autossh建立ssh隧道访问内网主机

    需求 myPC无法直接访问到S2和S3,S1也无法直接访问到S3在myPC上,通过S1,S2,间接访问到S3此类情...

网友评论

      本文标题:ssh隧道穿越内网访问局域网内主机

      本文链接:https://www.haomeiwen.com/subject/vtdwnhtx.html