ssh tunnel 反向代理(内网穿透)

ssh tunnel 反向代理(内网穿透)

  • 通过外网主机的特定端口访问内网主机特定端口的网络服务

设备信息

  • 47.93.199.97 外网代理主机,用来代理内网主机的网络服务。不能访问192.168.10.2内网主机
  • 192.168.10.2 内网主机,可以通过ssh客户端登录外网47.93.199.97主机

示例场景

  • 通过ssh root@47.93.199.97 -p 2222的方式登录192.168.10.2主机(通过47.93.199.97的2222端口,访问192.168.10.2的22端口的ssh服务)
  • 通过47.93.199.97的23306端口访问192.168.102主机的3306端口的mysql服务

环境准备

  • 使用root分别能够登录 47.93.199.97, 192.168.10.2(非root请使用sudo切换root权限)

外网代理主机(47.93.199.97)

  • 允许代理的服务绑定到0.0.0.0地址,允许其他主机远程访问服务端口
  • 编辑/etc/ssh/sshd_config, 增加或者设置GatewayPorts配置
  • 需要重启ssh服务
GatewayPorts yes
  • 保持代理服务端与客户端长时间有效
  • 编辑/etc/ssh/sshd_config, 增加或者设置ClientAliveInterval,ClientAliveCountMax 配置
  • 需要重启ssh服务
ClientAliveInterval 60     #服务端主动向客户端请求响应的间隔
ClientAliveCountMax 10     #服务器发出请求后客户端没有响应的次数达到一定值就自动断开
  • 重启ssh服务
service ssh restart

内网被代理主机(192.168.10.2)

  • 保持客户端与代理服务端长时间有效
  • 编辑/etc/ssh/ssh_config(服务端的配置文件sshd_config,注意区别),增加或设置TCPKeepAlive,ServerAliveInterval 配置
TCPKeepAlive yes         #保持与服务端的tcp连接
ServerAliveInterval 60   #客户端主动向服务端请求响应的间隔

代理搭建

ssh代理服务

  • 在内网主机执行下面的指令,然后输入密码,即可完成代理服务搭建
ssh -NfR <remote binding host>:<remote bing port>:<local host>:<local port> <remote login user>@<remote host>
  • 在192.168.10.2内网主机执行以下指令,搭建ssh代理服务
ssh -NfR *:2222:127.0.0.1:22 root@47.93.199.97

mysql代理服务

  • 在192.168.10.2内网主机执行以下指令,搭建mysql代理服务。通过47.93.199.97的23306端口即可访问内网主机192.168.10.2的3306端口的mysql服务
ssh -NfR *:23306:127.0.0.1:3306 root@47.93.199.97

Refs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值