使用SSH建立反向隧道进行内网穿透

使用SSH建立隧道(端口转发)进行内网穿透

一.原理

利用ssh进行内网穿透主要是利用了ssh的隧道(端口转发)功能。首先内网主机通过ssh连接和一个具有公网ip的主机建立隧道,设置好服务器主机端口对内网主机端口的映射,之后所有外网对公网ip的请求均通过之前内网主机和服务器建立好的ssh隧道被转发到内网主机上,然后内网主机根据请求又通过隧道将对应的信息的返回。

二.实现前准备

1.ssh client(在服务器主机和内网主机都需要安装ssh客户端,ubuntu默认安装)
2.ssh server(在服务器主机和内网主机都需要安装ssh服务端,ubuntu默认不安装,apt-get install openssh-server)
3.一台具有公网ip的服务器主机
4.一台处于内网下的目标主机

二.举例

我们此时有一台内网主机,没有公网ip,内网可以访问外网,但是外网不能访问内网
1.内网主机: ip:192.168.3.146 port:1025
2.公网服务器:ip: port:24.68.47.2 port:22

三.实验中用的ssh命令工具

1.ssh -p [port] [user name]@[ip address] (连接远程服务器上的某个端口)
2.ssh -fNCR (反向代理)
3.ssh -fNCL (正向代理)
参数解释:
-p:指定连接端口
-f:后台执行ssh指令
-C:允许压缩数据
-N:告诉SSH客户端,这个连接不需要执行任何命令,仅仅做端口转发
-R:将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
-L:将本地机(客户机)的某个端口转发到远端指定机器的指定端口

四.具体配置

分为以下三步
1.建立ssh隧道:内网主机连接到服务器主机
2.在公网服务器上设置正向代理
3.ssh隧道

4.1.将内网主机的某个端口转发到服务器主机的指定端口(反向代理),操作在内网主机上。

工作原理:本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去,。
ssh命令:
ssh -fCNR [服务器主机ip]:[服务器主机port]:[内网主机IP]:[内网主机port] [登陆服务器主机的用户名@服务器IP]
将内部主机的端口映射到公网服务器主机上的端口上

4.2.将服务器主机的某个端口转发到内网主机的指定端口(正向代理),操作在服务器主机上

工作原理:远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值