本文是:SSH Tunnel - Local and Remote Port Forwarding Explained With Examples 的译文 有两种方法可以创建SSH隧道,本地和远程端口转发(也有动态转发,但我们不在这里讨论).最好的理解方法是通过一个示例,让我们从本地端口转发开始. 本地端口转发 假设您处于一个不允许连接到特定服务器的专用网络上.比方说,你在工作,imgur.com被封锁.为了绕过这个,我们可以通过一台服务器创建一个不在我们的工作网络的隧道,从而可以访问Imgur…
    0.前言 nc是一个在网络连接两端的好工具,同时也是也个临时的端口转发的好工具.(永久的端口转发用什么?用iptables) ssh也是这方面的好工具,好处是加密可靠可复用在一端操作即可,代价是要有登录帐号. 我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发.它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务. 1.隧道带理 典型应用:翻越中国高墙 需要…
SSH端口转发 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务.这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名.例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输.而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允…
当我的本地没有安装任何数据库服务的时候,可以直接通过我本地的端口访问远程机器上的数据库服务,实现这样的效果就可以使用本地转发功能 实际测试本地端口转发,把本地的9006端口转发给远程服务器的115.159.28.111的3306端口,当然需要输入远程机器的用户名和密码 : ubuntu@115.159.28.111 执行完成后,可以在另一个终端中使用netstat命令查看到本地的9006端口本监听了,然后直接使用mysql命令去连接9006端口就可以访问到远程机器的3306数据库了.当然与之相对…
一.ssh远程端口转发 背景:当我们在渗透过程中,获取到内网的一台仅有内网IP的服务器后,我们可以通过ssh隧道,将内网某个主机的端口进行远程转发 1.网络拓扑图 假设获取的服务器为web服务器,web服务器将远程内网目标服务器的3389端口,通过ssh远程端口转发给VPS的3307端口,然后在VPS上访问自己本地地址和3307,即可远程到内网的主机 2.实验环境 VPS:192.168.4.134 web服务器:1.1.1.11 数据库服务器:1.1.1.12 3.实验步骤 在web服务器上执…
既然"本地端口转发"是指绑定本地端口的转发,那么"远程端口转发"(remote forwarding)当然是指绑定远程端口的转发. 还是接着看上面那个例子,host1与host2之间无法连通,必须借助host3转发.但是,特殊情况出现了,host3是一台内网机器,它可以连接外网的host1,但是反过来就不行,外网的host1连不上内网的host3.这时,"本地端口转发"就不能用了,怎么办? 解决办法是,既然host3可以连host1,那么就从ho…
问题 前段时间在外地没有在实验室,随身携带了一个笔记本电脑.但是笔记本性能不够,想用SSH远程连接实验室的电脑.问如何连接?现有以下设备 设备 IP 备注 系统 实验室电脑C1 192.168.0.24 内网,可访问外网.SSH登陆端口为321. Linux 笔记本电脑A1 动态变化 无公网IP Linux.win 云端服务器B1 113.4.67.278 有公网IP Linux 目标: 访问实验室电脑C1的321端口. 解决办法: 如果局域网共用一个公网IP(此公网IP可以在外网访问),且可以…
当ssh的连接方向和应用连接的方向不一致时,这就称为ssh远程转发. 主机3是一台web server 应用请求是主机2到主机1 ssh请求是主机1到主机2 主机2开启ssh服务 service ssh start 主机1建立ssh远程连接 ssh -CfNg -R 7001:1.1.1.11:80 root@192.168.1.110 -p 53 ssh -CfNg -R 7002:1.1.1.11:3389 root@192.168.1.110 -p 53 虽然命令操作是在主机1上,但是执行…
本文作者Tony Lee,转载自FreeBuf.COM ​​自从家里换了联通光纤后,联通就在我家宽带出口前搭了一个路由器,我家也彻底沦为192.168.1.0/24段的局域网了,带来的问题就是在外网无法访问家里的路由器.这对于刷了LEDE,有时候需要从外网直接管理使用路由器的我,觉得难受极了.周末有空,干脆解决这个问题. 在这之前,了解过一个ngrok项目,用于将局域网内的某一个地址的端口,映射到公网.但是研究了一下该软件,发现其在LEDE的源中,并不包含,我又是个懒的去编译的程序员,因此想看看…
说明:需要将外网访问本地IP(192.168.75.5)的80端口转换为访问192.168.75.3的8000端口,这就需要用到iptables的端口映射 实现:1. 需要先开启linux的数据转发功能 # vi /etc/sysctl.conf,将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1 # sysctl -p //使数据转发功能生效 2. 更改iptables,使之实现nat映射功能 将外网访问192.168.75.5的80端口转发到192.…
起因看到一个用java写的轻博客,于是就兴致冲冲的试用一下.由于是lnmp的环境,Nginx占用了80端口,新博客只能用其他的端口,这里选择了9000端口,本地测试没问题.总不能访问了域名然后在加上端口号吧.于是就想着用Nginx来反向代理本地的9000端口 配置 新建一个配置文件 vim www.ti3.cc.conf 输入以下配置 listen 80; server_name localhost www.ti3.cc ti3.cc; location / { proxy_pass http:…
0x01 安装Dns2TCP dns2tcp 是一个利用DNS隧道转发TCP连接的工具,使用C语言开发. sudo apt-get install dns2tcp 0x02配置dns2tcp 配置DNS2TCP服务端 首先,将你的某个域名(这里以creke.net为例)开个二级域名a.creke.net,类型为NS,NS记录指向b.creke.net.然后将b.creke.net建立A记录指向你的Linux服务器IP(这里以1.2.3.4为例).如下表所示. a.creke.net NS b.c…
SSH系列文章: SSH基础:SSH和SSH服务 SSH转发代理:ssh-agent用法详解 SSH隧道:端口转发功能详解 1.1 ssh安全隧道(一):本地端口转发 如下图,假如host3和host1.host2都同互相通信,但是host1和host2之间不能通信,如何从host1连接上host2? 对于实现ssh连接来说,实现方式很简单,从host1 ssh到host3,再ssh到host2,也就是将host3作为跳板的方式.但是如果不是ssh,而是http的80端口呢?如何让host1能访…
在之前 GRE 的文章中,我们知道隧道技术可以解决异种网络的通信问题.在今天这篇文章中,将认识隧道技术的另一应用 - SSH 端口转发. 首先我们对 SSH 并不陌生,是应该非常普遍的加密协议,用于在不安全的网络中提供安全的传输环境,常见的用途是用于远程登录.而今天要介绍的端口转发,原理类似. 端口转发解决的问题: 增加安全性,加密 Client 到 Server 端的通信数据 突破防火墙限制,完成一些被禁止的 TCP 连接 端口转发的类型 在此之前,我们先了解一下端口转发的概念,端口转发是 S…
ssh本地和远程端口转发都需要固定的应用服务器IP和端口,但是很多情况下,应用的端口繁多逐个转发效率不高,而且一些应用使用不固定的端口,经常跳着使用端口,一些网站还不支持IP直接访问,这导致ssh本地和远程端口转发在一些使用上不是很方便,使用ssh动态端口转发可以解决以上问题. 主机2 开启ssh服务:service ssh start 主机1 ssh -CfNg -D 7009 root@192.168.1.110 -p 53 在主机3上访问网络会发现是无法连接的,这是因为还没有设置代理 设置…
关于使用ssh portforwarding来进行FQ的操作,网络上已经有很多很好的文章,我在这里只是画两个图解释一下. 首先要记住一件事情就是: SSH 端口转发自然需要 SSH 连接,而 SSH 连接是有方向的,从 SSH Client 到 SSH Server . 而我们所要访问的应用也是有方向的,应用连接的方向也是从应用的 Client 端连接到应用的 Server 端.比如需要我们要访问Internet上的Web站点时,Http应用的方向就是从我们自己这台主机(Client)到远处的W…
SSH连接命令 默认连接的端口为22 1. 使用私钥 ssh -p connect_port user_name@host -i your_private_identity 2. 使用用户密码 ssh user_name@host 创建SSH隧道 ssh -L 7878:localhost:3306 -p ssh_port user_name@remote_host -i your_private_identity 本机端口:目标host:目标端口 这里的目标host是localhost的原因是…
英文:阮一峰 链接:http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html 接着前一次的文章,继续介绍SSH的用法. (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一节的操作,就是一个例子: $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys'…
SSH原理与运用(二):远程操作与端口转发 作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一节的操作,就是一个例子: $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub 单引号中间的部分,表示在远程主机上执行的操作:后面的输入重定向,表示数据通过SSH传…
原文的原始出处不详,本文也是在复制引用了某篇转载,并做了必要的整理与编辑. 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影). 公司为了防止我们用XX软件封锁了它的端口或者服务器地址. 公司不让我们上XX网站,限制了网址甚至IP. 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤.一看XX内容,链接就中断了. 我爸是搞电脑的,他在家里的路由器上动了手脚,我不能看XXX了. 带…
作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一节的操作,就是一个例子: $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub 单引号中间的部分,表示在远程主机上执行的操作:后面的输入重定向,表示数据通过SSH传向远程主机. 这就是说,SSH可以在用户和远…
转自:https://yq.aliyun.com/articles/8469 ssh是一个非常棒的工具, 不但能建立动态转发, 例如chrome的Switchy插件用到的就是这个技术.http://blog.163.com/digoal@126/blog/static/163877040201141821810103/还能建立TCP的转发隧道, 例如我以前写过的关于使用ssh 隧道加密和加速WAN传输的几个例子.http://blog.163.com/digoal@126/blog/static…
SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一节的操作,就是一个例子: $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub 单引号中间的部分,表示在远程主机上执行的操作:后面的输入重定向,表示数据通过SSH传向远程主机. 这就是说,SSH可以在用户和远程主机之间,建立命令和数据的传输通道,因此很多事情都可以通过SSH来完成. 下面看几个…
有时,绑定本地端口还不够,还必须指定数据传送的目标主机,从而形成点对点的"端口转发".为了区别后文的"远程端口转发",我们把这种情况称为"本地端口转发"(Local forwarding). 假定host1是本地主机,host2是远程主机.由于种种原因,这两台主机之间无法连通.但是,另外还有一台host3,可以同时连通前面两台主机.因此,很自然的想法就是,通过host3,将host1连上host2. 我们在host1执行下面的命令: $ :hos…
动态转发(SOCKS5代理): 命令格式:ssh -D <local port> <SSH Server> ssh -fnND 0.0.0.0:20058 172.16.50.20  //f后台执行,必须配合n使用,N不打开远程shell,D绑定本地20058端口  -g Allow remote hosts to connect to forwarded ports. 在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接.  修改…
SSH原理与运用(二):远程操作与端口转发 http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html 接着前一次的文章,继续介绍SSH的用法. ======================================= SSH原理与运用(二):远程操作与端口转发 作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作. 上一节的操…
ssh隧道实现端口转发 本地转发 # 本地转发 ssh -g -f -N -L : root@ # -L 本地端口转发,转发172.16.1.1主机可以访问的资源,这里为转发172.16.1.2的80端口到本地端口8080,:8080为监听本地所有地址. # -g 监听所有地址 # 本地测试是否可访问 curl http://192.168.1.1:8080/ 远程转发 # 远程转发 ssh -f -N -R : root@ # -N 不登录ssh server # -R 远程端口转发,本地19…
目录 SSH做本地端口转发 SSH做反向隧道(远程端口转发) 用autossh建立稳定隧道 SSH开启端口转发需要修改 /etc/ssh/sshd_config配置文件,将 GatewayPorts修改为yes -f 后台执行ssh指令 -C 允许压缩数据 -N 不执行远程指令 -R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口 -L 本地端口转发 -D 动态端口转发 SSH做本地端口转发 现在我们有这样一种情景,服务器A上有Redis数据库,并且我们知道Redis数据库的密码.…
SSH隧道 本地端口转发 本地客户端通过 local_port 连接到 MobaXterm: MobaXterm 绕过防火墙,使用 user 用户连接到 ssh_server_ip:ssh_server_port 的 SSH 服务器: SSH 服务器连接到 romote_ip:romote_port 的远程服务器. ssh -N -f -L local_port:romote_ip:romote_port user@ssh_server_ip:ssh_server_port -N 该连接不需要执…
导读 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人. 如果两个内网之间的linux服务器需要互相登录,或需要互相访问内网某个端口,担忧没有公网IP,可以使用的方法有ngrok(https://ngrok.com/),但并不方便,我们只需两条 SSH 命令即可. 先给出本文主角,两条SSH命令: 远程端口转发(由远程服务器某个端口转发到本地内网服务器端口) ssh -CfNg -R(命令行的关键) 2222(远程服务器端口):127…