一、SSH 端口转发能够提供两大功能:

1.加密SSH Client 端至SSH Server 端之间的通讯数据

2.突破防火墙的限制完成一些之前无法建立的TCP 连接  (隧道功能)

二:SSH端口本地转发

运用场景图:

-L   localport:remotehost:remotehostportsshserver

选项:   -f 后台启用         -N 不打开远程shell,处于等待状态        -g 启用网关功能

 比如:
ssh   –L 9527:telnetsrv:23   -N   sshsrv
telnet 127.0.0.1 9527
当访问本机的9527的端口时,被加密后转发到sshsrv的ssh服务,再解密被转发到telnetsrv:23
data < >localhost:9527 < > localhost:XXXXX < > sshsrv:22 < > sshrv:yyyyy < > telnetsrv:23
[root@telnetserver ~]# iptables -A INPUT -s 192.168.40.132 -j REJECT
[root@telnetserver ~]# yum install -y telnet-server
[root@telnetserver ~]# systemctl start telnet.socket

[root@sshserver ~]# yum install -y telnet-server.x86_64
[root@sshserver ~]# systemctl start telnet.socket
 
[root@client ~]#  ssh -L 9527:192.168.40.155:23  192.168.40.211  (自己给自己搭建隧道)
The authenticity of host '192.168.40.211 (192.168.40.211)' can't be established.
ECDSA key fingerprint is SHA256:pNJw/K2ipf4PO9OZtkTmisNZ+ctpN02yRIMxTvNGlrA.
ECDSA key fingerprint is MD5:42:0a:fb:3f:74:1f:12:fc:f1:6a:20:00:43:0a:0f:c3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.40.211' (ECDSA) to the list of known hosts.
root@192.168.40.211's password: 
Last login: Sun Oct  6 12:58:31 2019 from 192.168.40.1
[root@sshserver ~]#
 
[root@sshserver ~]# ss -nt
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
ESTAB      0      0      192.168.40.211:22                 192.168.40.1:50804              
ESTAB      0      0      192.168.40.211:22                 192.168.40.:46418
 
[root@sshserver ~]#  yum install -y telnet  (安装telnet命令)
[root@client ~]# telnet 127.0.0.1 9527 (本地转发)
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Kernel 3.10.0-693.el7.x86_64 on an x86_64
telnetserver login: aa
Password:
[aa@telnetserver ~]$    (登录成功)
 
[root@client ~]# ssh -L 9527:192.168.40.155:23 :46448
 
三:SSH端口远程转发
运用场景图:
 

远程转发机制:
-R sshserverport:remotehost:remotehostportsshserver
例如:ssh–R 9527:telnetsrv:23 –N sshsrv
让ssh机子侦听9527端口的访问,如有访问,就加密后通过ssh服务转发请求到本机ssh客户端,再由本机解密后转发到telnet:23
Data < > internet:9527 < > internet:22 < > ssh:XXXXX < > ssh:YYYYY< >telnetsrv:23
 
[root@lanserver ~]# ssh -R 9527:192.168.40.155:23 192.168.40.211  (给internet搭建隧道)
root@192.168.40.211's password:
Last login: Sun Oct  6 13:45:44 2019 from 192.168.40.1

[root@internet ~]# ss -ntl
State       Recv-Q Send-Q       Local Address:Port                      Peer Address:Port              
LISTEN      0      128                      *:22                                   *:*                  
LISTEN      0      128              127.0.0.1:                                 *:*                  
LISTEN      0      100              127.0.0.1:25                                   *:*                  
LISTEN      0      128                     :::22                                  :::*                  
LISTEN      0      128                    ::1:9527                                :::*                  
LISTEN      0      100                    ::1:25
 
[root@internet ~]# telnet 127.0.0.1 9527
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
telnetserver login: aa
Password:
Last login: Sun Oct  6 01:21:13 from localhost
[aa@telnetserver ~]$

[root@telnetserver ~]# ss -nt   (服务端察觉不到是internet在连接)
State       Recv-Q Send-Q       Local Address:Port                      Peer Address:Port              
ESTAB       0      52          192.168.40.155:22                        192.168.40.1:50809              
ESTAB       0      0        ::ffff:192.168.40.155:23                   ::ffff:192.168.40.:36364
 

四:SSH动态端口转发

运用场景图: (翻墙,ss国外服务器做代理)

原理:

当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问请求被转发到sshserver上,由sshserver替之  访问internet
动态转发机制:
ssh-D 1080 root@sshserver
在本机firefox设置代理socket proxy:127.0.0.1:1080
测试:
curl --socks5 127.0.0.1:1080 http://zangfans.com
在企业内部或者网络中,基于安全策略不能随便访问互联网某些站点
[root@google ~]# echo www.google.com > /var/www/html/index.html
[root@google ~]# systemctl restart httpd
[root@google ~]# iptables -vnL
Chain INPUT (policy ACCEPT 78337 packets, 18M bytes)
 pkts bytes target     prot opt in     out     source          destination         
3   252 REJECT     all  --  *   *     192.168.40.132      0.0.0.0/0           reject-with icmp-port-unreachable (挡住132)
      
[root@internet ~]# ssh -D 1080 root@192.168.40.211   (自己给自己搭建隧道)
root@192.168.40.211's password:
Last login: Sun Oct  6 14:31:08 2019 from 192.168.40.1
[root@proxy ~]#
[root@internet ~机子配置火狐代理省略

[root@internet ~]# curl --socks5 127.0.0.1:1080  192.168.40.155  #默认端口就是1080,可以不写

www.google.com
 
 

ssh端口转发功能的更多相关文章

  1. Linux:ssh端口转发详解

    ssh是个多用途的工具,不仅可以远程登录,还可以搭建socks代理.进行内网穿透,这是利用它的端口转发功能来实现的. 所谓ssh端口转发,就是在ssh连接的基础上,指定 ssh client 或 ss ...

  2. mysql ssh 端口转发

    某些时候 mysql  只允许 指定的 ip连接 .这时候怎么在本机 连接mysql 的呢? 条件 1 mysql 只有 允许 指定ip连接 2 有连接 指定 ip 服务器的  账密 这时候我们可以通 ...

  3. SSH隧道:端口转发功能详解

    SSH系列文章: SSH基础:SSH和SSH服务 SSH转发代理:ssh-agent用法详解 SSH隧道:端口转发功能详解 1.1 ssh安全隧道(一):本地端口转发 如下图,假如host3和host ...

  4. 【转】实战 SSH 端口转发

    本文转自:http://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/index.html,至于有什么用,懂的懂! 实战 SSH 端口转发 通 ...

  5. SSH 端口转发

    第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我 ...

  6. 实战 SSH 端口转发

    转自实战 SSH 端口转发 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题.学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业 ...

  7. SSH25个命令 + 深入SSH端口转发细节

    OpenSSH是SSH连接工具的免费版本.telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃 ...

  8. SSH端口转发详解及实例

    一.SSH端口转发简介 SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据.但是,SSH还能够将其他TCP端口的网络数据通SSH链接来转发,并且自动提供了相应的加密及解密服务.这一过程也被叫 ...

  9. 利用SSH端口转发实现跨机器直接访问

    在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比 ...

随机推荐

  1. 高可用,多路冗余GFS2集群文件系统搭建详解

    高可用,多路冗余GFS2集群文件系统搭建详解 2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群 ...

  2. nginx部署网站step by step

    安装后,修改nginx.conf,在httpd{}中添加 include /nginx/vhosts/*.conf; 如果没有vhosts就新建一个文件夹 *.conf是一种正则表达式用法,表示纳入一 ...

  3. 【UOJ#37】 [清华集训2014] 主旋律

    题目链接 题目描述 给定一张强联通图,求有多少种边的存在情况满足图依然强联通. \(n\leq15\) Sol 首先正难则反,考虑用总数减去不强联通的. 考虑一张不强联通的图,缩点后一定是一个 DAG ...

  4. 4.2 会议室预定系统,ajax参数(未完成)

    参考blog https://www.cnblogs.com/alice-bj/p/9191082.html https://www.cnblogs.com/yuanchenqi/articles/7 ...

  5. 2019春Python程序设计练习3(0402--0408)

    1-1 如a是一个列表,且a[:]与a[::-1]相等,则a中元素按顺序排列构成一个回文. (2分) T         F 1-3 表达式 {1, 3, 2} > {1, 2, 3} 的值为T ...

  6. 2、DockPanel

    DockPanel——停靠面板,内部控件或容器可以放置在上.下.左(默认).右.类似于Java AWT布局中的BorderLayout. 但与BorderLayout不同的是,每一个区域可以同时放置多 ...

  7. Java多线程和并发(九),ReentrantLock(公平锁)

    目录 1.ReentrantLock 2.ReentrantLock的实现 3.synchronized和ReentrantLock的区别 九.ReentrantLock(公平锁) 1.Reentra ...

  8. props 父组件给子组件传递参数

    话不多说,直接上代码 父组件: <span><humidity-component ref="soilHumidityBot" :title='title2'&g ...

  9. HDU 3669 [Cross the Wall] DP斜率优化

    问题分析 首先,如果一个人的\(w\)和\(h\)均小于另一个人,那么这个人显然可以被省略.如果我们将剩下的人按\(w[i]\)递增排序,那么\(h[i]\)就是递减. 之后我们考虑DP. 我们设\( ...

  10. Unity3D_(游戏)2D简单游戏制作过程:捕获高空掉落保龄球

      游戏介绍:通过鼠标的左右移动,可以控制帽子的移动,当帽子接到下落的保龄球时,会出现火花效果.没有接到保龄球时,保龄球落到草地上,过10S后会自动消失. 实现效果: 素材+Unity3D源代码:传送 ...