SSH 内网端口转发实战

导读 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多。不过其实除了这个功能,它的隧道转发功能更是吸引人。

如果两个内网之间的linux服务器需要互相登录,或需要互相访问内网某个端口,担忧没有公网IP,可以使用的方法有ngrok(https://ngrok.com/),但并不方便,我们只需两条 SSH 命令即可。

先给出本文主角,两条SSH命令:

远程端口转发(由远程服务器某个端口转发到本地内网服务器端口)

ssh   -CfNg  -R(命令行的关键)   2222(远程服务器端口):127.0.0.1:22(本地端口)   123.45.67.8(远程服务器)
本地端口转发(由本地内网服务器某个端口转发到远程服务器端口)

ssh   -CfNg  -L(命令行的关键)    2222(远程服务器端口):0.0.0.0:4444(本地端口)   123.45.67.8(远程服务器)

命令行选项解释:

-C:压缩数据传输。
-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N :不执行脚本或命令,通常与-f连用。
-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
-L 本地端口:目标IP:目标端口
-T 不分配 TTY 只做代理用
-q 安静模式,不输出 错误/警告 信息

需要让远程机器能访问的内部机器的端口号(端口:22)

在清楚了上面的参数后,我们使用下面的命令来建立一个远程SSH隧道,在内网主机执行

ssh   -CfNg -R 2222:127.0.0.1:22  123.45.67.8

现在,在IP是123.45.67.8的机器上我们用下面的命令就可以登陆内网IP为192.168.0.100的机器了。

ssh -p 2222 localhost

现在公网ip的 123.45.67.8 主机可以本地访问内网服务端了,那内网客户端要怎么登陆呢?,我们只需要把内网客户端的 4444 端口映射到 123.45.67.8 的 2222端口即可。

现在我们需要本地转发了。

ssh  -CfNg   -L  2222:0.0.0.0:4444   123.45.67.8

执行完后,本地的内网客户端 4444 端口已经和 123.45.67.8 的 2222 端口连接起来,然后 123.45.67.8 的 2222 端口 又和 内网服务端的 22 端口连接起来,成为一个完整的映射链。

本文原创地址:http://www.linuxprobe.com/ssh-network.html

时间: 2024-10-13 07:43:32

SSH 内网端口转发实战的相关文章

内网端口转发方法汇总

内网端口转发方法汇总 I. Sample Baklinks with "lcx.exe" first download lcx.exe from attach.blackbap.org/down/yclj/lcx.exe the program only can running in Windows Server, the program can backlink 3389 to another server. Opening and Listening a Port(like 333

我是如何逃过所有杀软进行内网端口转发的

作者: Striker 平时在渗透测试中大家经常会用到内网渗透,然而内网渗透中很重要的一个步骤就是端口转发. 常见的端口转发 lcx.exe nc.exe Using php/jsp/aspx Script iptables端口转发 nginx端口转发 等等...... 其中lcx.exe.nc.exe以及使用脚本转发,都有可能被防护/杀毒软件拦截,而后者则略微有点麻烦(不会告诉你是因为我真懒!) 我是一个非常喜欢渗透测试的人,并且颜值比较高(啊,打我干啥!) 偶尔也会用到内网渗透,进行端口转发

网络安全系列之二 利用lcx实现内网端口转发

内网中的主机一般都是使用私有IP,在网络出口处经过NAT转换为公网IP之后,才能访问Internet.在这种网络结构下,通信双方之间实现的是单向访问,即只有内网中的主机可以主动访问Internet中的主机,反之则不行.如果在内网中架设了一台服务器,又需要允许Internet中的用户访问这台服务器,那么就必须在网络出口处进行端口映射.在网络攻防中,如果捕获了一台位于内网中的肉鸡,那么黑客是无法主动去连接这台肉鸡的,而且也不可能在人家的网络出口做端口映射,这时就可以用到lcx这个小工具了.下载地址:

WlMAP:突破内网端口转发映射工具

使用说明 Wlmap包括服务端程序和客户端程序两部分 服务端程序Wlmaps一般架设到其它用户可以访问到的地方例如internet,它主要用来记录客户端信息以及端口映射信息,并且转发用户和客户端之间数据.客户端程序主程序完成和Wlmaps的交互,包括认证.映射内部服务到Wlmaps的某个端口.维护数据转发通道同时转发Wlmaps和内部服务之间的数据交互. 第一部分: 服务端Wlmaps 1.如何运行Wlmaps DOS命令 : Wlmaps.exe -p -s -p:指定Wlmaps服务的端口,

SSH 端口转发实战

第一部分 概述 场景一: 设想这样一个场景,当你挤了很久的公交,又辗转了几班地铁,终于拖着疲惫的身躯回到家中的时候,突然间接到了领导的电话,公司服务器上有某个重要的服务需要立马被关闭,而公司的内部网络与外部网络之间有防火墙,禁止telnet远程直接链接,这时你会怎么办呢?(吐槽一下,运维好苦逼/(ㄒoㄒ)/~~) 场景二:  设想另外一种场景,在本地的一个服务器上运行着SMTP服务,而远程的一个主机需要访问这个SMTP服务,但是防火墙不允许不信任的外部访问,进入到局域网内部,而内部的主机却是可以

SSH隧道技术----端口转发,socket代理

本文大部分参考引用加copy:http://blog.chinaunix.net/uid-20761674-id-74962.html 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影). 公司为了防止我们用XX软件封锁了它的端口或者服务器地址. 公司不让我们上XX网站,限制了网址甚至IP. 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤.一看XX内容,链接就中断了. 我爸是

搭建nginx反向代理用做内网域名转发

基于域名的7层转发的实现(NAT+反向代理) 在实际办公网中,因为出口IP只有一个,要实现对外提供服务的话就必须得做端口映射,如果有多个服务要对外开放的话,这只能通过映射不同端口来区分,这在实际使用过程中非常的痛苦(记忆困难.一一对应关系也没有规律.访问的时候还得加端口),这个痛苦的问题用表格的形式来形象的描述如下: Public IP Public Port Number Internal IP Internal Port Number Note 1.1.1.1 80 192.168.1.10

SSH隧道tunneling端口转发

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

linux下搭建redis内网端口映射工具-rinetd

最近在工作中使用到了redis缓存,用来提某些业务场景的计算速度和某些情况下的操作频率限制,客户端工具使用了redisDesktopmanager来管理,在本机操作测试的时候,是没有问题的.但是将系统部署到ecs上之后,想要观察redis里面的数据缓存情况,会发现无法访问.原因是由于阿里云上面的redis是存在内网环境中的,服务器可以访问,要想在本地访问redis的话,必须要在ecs上搭建一个内网端口映射工具,把来自外网的请求转发到内网的redis端口上面.下面就来介绍使用这个工具rinetd.