SSH Tunnel (端口转发) -- 把我的PC变成“幕后boss”

指路牌

  • SSH Tunnel
  • 端口转发

网上有帖子提到SSH Tunnel与端口转发是不一样的,这里我没有深刻研究两个名词的具体区别,从结果上来讲,我是被SSH Tunnel这个名词引到这个知识点的,但实现的效果很像“端口转发”,姑且都写上吧。windows

适用场景

但愿在本身电脑本地启动服务,让Internet发向服务器的请求转向本身的电脑,从而使调试更便利。bash

该debug模式只有特殊情境:如强制须要固定IP等才会用到,并不具备广泛性。 网上大多教程是将端口映射到局域网内某设备上,应该都出出自运维向从业者的,做为开发者本blog简化场景就是将服务器的端口映射到本身电脑上。服务器

环境

  • Linux、windows、Mac都可

参考博客

  • 不知何缘由,参考博客被和谐了...

背景

最近因为工做缘由,接手了一个与微信公众号相关的项目。项目部署起来后发现功能不能彻底跑通,所以须要打断点检查问题到底出在了什么地方。因为开发涉及微信公众平台,其要求将ip加到白名单内,所以须要“固定IP”,又因为项目部分模块须要使用https,在搭建https比本地要便捷。以上两条缘由让我选择使用端口映射。微信

实现

ssh -p22 -i NAME.pem -N -R 0.0.0.0:8080:127.0.0.1:8080 USER@IP
复制代码
  • 嗯,就是这么简单,一条指令就能够了.........
  • NAME.pem: pem文件,记得将执行路径索引到pem文件下,或者写成pem的绝对路径。若是使用账号密码登陆的话,去掉-i NAME.pem, 命令输入后会要求输入密码,效果相同
  • USER: 登陆服务器用户名,如:root
  • IP: 服务器的公网IP地址

备注

  • 通常博客都会讲到 -L -D,可是因为在个人场景中,不会使用到这两种模式,这里不作介绍了。
  • 要从微信服务器拿取token,实际上并不必定非要使用具备固定IP的服务器,实际上将我的电脑的临时IP加入到微信IP白名单一样能够拿取到token,但弊端是动态IP会变化,所以须要在IP变更时进行替换,比较麻烦。

后记

在使用端口映射时我就冒出过另一个问题,端口映射可以将服务器的某个端口接收到的服务都映射到本地电脑,但如何控制本地电脑全部发出的请求也走服务器昵?咱们都知道本地发起网络请求时,发起请求的端口是不彻底可控的。所以即便使用了端口映射,无非是实现了一个代理人将听到的话讲述给我,但我仍是要和外来者直接对话的局面,以下图。若是我想当一个“幕后boss”,彻底经由代理人来完成转化呢? 网络

咱们惟一须要作的就是让我的电脑发起的全部请求都通过具备固定ip的云服务器来完成,推荐工具好比“TinyProxy”,但因为某些缘由,此处不介绍了,有兴趣的读者能够自行查阅文档实现。微信公众平台

当端口映射和TinyProxy均搭建起来后,ECS将变成咱们PC在Internet的代言人,就是实现了下图所示的效果。本身也就变成“幕后boss”了。 运维

要获取更多Haytham原创文章,请关注公众号"许聚龙": ssh

个人微信公众号
相关文章
相关标签/搜索