端口转发和端口映射
端口转发和端口映射都是为了解决内网主机的端口无法在外部直接访问而衍生出来的技术,通过中间服务器进行中转,将内部的端口映射到公网IP上或者将内部端口转发到外部服务器,供用户或者自己来使用,那么他们的区别是什么呢?
1,端口转发
顾名思义,就是将端口进行转发,具体哪个端口转发到哪个端口要以应用场景为准,比如我们拿到一台内外服务器A的权限,通过扫描发现了同内网的另一台服务器B且开了80端口,我们该如何使用浏览器访问它呢?我们画一个图如下:
从上图中可以看到,我们已经与A建立了通道,我们可以在A上上传任意文件,执行任意的系统命令,我们如何能够访问B的80端口?假设A是在公网上,有公网IP,我们可以访问它的任意端口。
a、直接在A上执行curl命令访问B的80端口(这种方式不方便我们测试B的80端口的漏洞,不方便利用)
b、在A上开启一个socks5代理,我们使用浏览器设置好代理,将我们的浏览器代理到目标内网,然后访问B的80端口。
c、在A上执行端口转发,将B的80端口转发到A的8080,然后我们直接用浏览器访问A的8080端口即可,这个原理就是端口转发
总结一下,端口转发就是将一个端口,这个端口可以本机的端口也可以是本机可以访问到的任意主机的端口都可以转发到任意一台可以访问到的IP上,通常这个IP是公网IP,方便我们使用。
2,端口映射
顾名思义,就是映射端口,就是将一个内网端口映射到公网上的某个端口,我们来看一个实例,我自己的电脑是在内网中,没有公网IP,但是我想提供一个端口供其他人使用,怎么办呢?我们来看一个图:
A和B在不同的内网,各自有自己的内网IP,但是互相无法直接访问,这时就需要一个中间服务器,要A和B都可以访问然后作为中转服务器,实现上面的目标,这个中间服务器需要有一个公网IP,如图:
上图的C就是有公网IP的中间服务器,我们可以将A的80端口映射到C的80端口,这时,B就可以访问C的80端口,也就相当于访问A的80端口了,这里其实核心原理也是端口转发,只不过是将本机的端口转发到远程的某个端口。
3,总结
端口转发和端口映射的核心原理是一样的,只不过是使用的场景不一样,我们将本机的端口转发到远程某个端口,我们可以叫端口映射,也可以叫端口转发;我们如果把本机可以访问到的任意IP的端口转发到另外一台服务器的端口,我们叫他端口转发。说起来有点绕,其实具体如何理解,什么样的叫法,最终是要在实际的场景中使用的,能够解决你的问题就可以了,也不用纠结到底叫什么。
●编号801,输入编号直达本文
●输入m获取文章目录