SSH和Netcat完成临时内网穿透

场景是这样的,前几天问运维同学要了一个测试机,只有内网IP,大部分情况够用,但是呢,偶尔也需要看看web页面什么的,怎么解决呢,正好我有个VPS,所以就想用SSH做个反向隧道,可以在家里也能访问到测试机的web服务,大部分都是临时使用,用完就关闭就好,安全风险也不是很大。

连接互联网的电脑 ---> 公网IP(vps) <--ssh隧道--> 内网测试机

解决方案比较多,现在有比较多的内网隧道工具,我这里比较原始了,但是也是法子

过程

角色

  • 内网测试机 A 10.0.11.5 启动redis在 6379
  • VPS公网 B 45.xx.xx.xx ssh端口 26294,root用户
  • 访问内网服务使用自己的笔记本,可以连接公网 C, 目标连接内网的 redis

1、B->A 建立反向ssh隧道,在内网测试机A 上操作

ssh -fN -R 8888:localhost:6379 root@45.xx.xx.xx -p 26294

这个命令的含义是,通过 SSH 把本地的 6379端口映射到远程vps的 8888 端口,执行命令输入密码(或者使用key做免密码登陆)

2、执行上述命令之后,在 vps 上查看

root@fendou:~# netstat -ntpl |grep 8888
tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN      23882/sshd: root

这个时候发现 8888 端口绑定的是 127.0.0.1 端口,在 自己的电脑上 执行 redis-cli -h 45.xx.xx.xx -p 8888, 连不上内网的redis,现在就需要一个非常简单的方式来个端口映射,把绑定到 0.0.0.0 的某个端口映射到 8888 端口

3、 在 vps主机 上执行

nc -l -p 8001 -c "nc 127.0.0.1 8888" -vv

4、 ok,现在 vps 的 8001 端口被放到公网上了,在本地的电脑上执行

$ redis-cli -h 45.xx.xx.xx -p 8001
45.xx.xx.xx:8001> info

好了,大公告成,这里提供个思路,还有很多优化的地方,例如可以把命令封装成脚本使用,还有请大家注意 redis的安全问题。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值