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

指路牌

  • SSH Tunnel
  • 端口转发

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

适用场景

希望在自己电脑本地启动服务,让Internet发向服务器的请求转向自己的电脑,从而使调试更便利。

该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 [email protected]
  • 嗯,就是这么简单,一条指令就可以了.........
  • 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”了。

原文地址:https://blog.51cto.com/13852791/2432395

时间: 2024-11-04 11:45:53

SSH Tunnel (端口转发) -- 把个人PC变成“幕后boss”的相关文章

【ssh】端口转发

来源:https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/ 非常非常好用,可以通过跳板解决两台服务器无法连接的问题 第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我们带来什么好处吧! 端口转发概述 让我们先来了解一下端口转发的概念吧.我们知道,SSH 会自动加密和解密所有 SSH

SSH 的端口转发

第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我们带来什么好处吧! 端口转发概述 让我们先来了解一下端口转发的概念吧.我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发.它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解

远地利用ssh进行端口转发,传输数据和远程登录

博客地址:http://loopholes.blog.51cto.com/9445813/16203672015-03-17 "本试验需要下载花生壳,不要问我花生壳是什么,下载点这里" 如何让在家里面连入到公司的电脑,对于这个问题,就是我作试验的起因了: 1.如果只是让用户登录,你只需要安装SSH的服务端(server),如果你还需要远程对方,你需要下载SSH的客户端(clients) yum install -y openssh ==>会自动把openssh-server(服务

ssh利用端口转发实现SOCKS5代理

现在linux下ssh使用比较广泛的是openssh包 ssh相关选项: -V 显示版本: ssh -V OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014 -f 输入密码后进入后台模式(Requests ssh to go to background just before command execution.) -N 不执行远程命令,用于端口转发( Do not execute a remote command. This i

SSH 本地端口转发

有时,绑定本地端口还不够,还必须指定数据传送的目标主机,从而形成点对点的"端口转发".为了区别后文的"远程端口转发",我们把这种情况称为"本地端口转发"(Local forwarding). 假定host1是本地主机,host2是远程主机.由于种种原因,这两台主机之间无法连通.但是,另外还有一台host3,可以同时连通前面两台主机.因此,很自然的想法就是,通过host3,将host1连上host2. 我们在host1执行下面的命令: $ ssh

SSH 远程端口转发

既然"本地端口转发"是指绑定本地端口的转发,那么"远程端口转发"(remote forwarding)当然是指绑定远程端口的转发. 还是接着看上面那个例子,host1与host2之间无法连通,必须借助host3转发.但是,特殊情况出现了,host3是一台内网机器,它可以连接外网的host1,但是反过来就不行,外网的host1连不上内网的host3.这时,"本地端口转发"就不能用了,怎么办? 解决办法是,既然host3可以连host1,那么就从ho

SSH的端口转发

一.SSH端口转发的概念 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还能够将其他 TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务.这一过程也被叫做"隧道"(tunneling),这是因为 SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名.例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输.而与此同时,如果工作环境中的防火墙限制了一些网络

ssh本地端口转发

ssh连接是有方向的,通常是ssh客户端去连接ssh服务器端.而我们运行的应用也是有方向的,比如我们去登陆一个qq,或者用浏览器上网,都是应用程序的客户端(本地下载qq.浏览器软件)去连接远处的qq服务器.web服务器.当ssh的连接方向和应用连接的方向一致时,这就称为ssh本地转发. 假设现在有一个防火墙保护的网络,在这个网络中防火墙会过滤经过53端口以外的数据包,所以在内网中我们就无法通过常规手段上网了,比如内网中的主机1就无法访问外网的web服务器主机3,因为经过80端口的数据全被防火墙过

SSH 端口转发

SSH 端口转发功能能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务.其实这一技术就是我们常常听说的隧道(tunnel)技术,原因是 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输.我们知道,FTP 协议是以明文来传递数据的.但是我们可以让 FTP 客户端和服务器通过 SSH 隧道传输数据,从而实现安全的 FTP 数据传输.更常见的情况是我们的应用经常被各种防火墙限制.常见的有禁止访问某些网站.禁用某类软件,同时你的所有网络行为都被监控并