SSH端口转发,总是忘记,今天记录下。端口转发有两种,一个是local一个是remote(可能还有一种dynamic,还没有研究)

贴个链接 https://www.ssh.com/ssh/tunneling/example#sec-What-Is-SSH-Port-Forwarding-aka-SSH-Tunneling

看完这个链接基本就会了,如果还不会再看 man ssh 里,找 -L和-R选项

Local转发

ssh -NL [bind-address]<local-port>:<target-host>:<target-port>  <ssh-server>

执行ssh命令的机器(ssh客户端),想通过 <ssh-server> 访问 <target-host>:<target-port> ,那么在执行了上述命令后,就可以访问 127.0.0.1:<local-port> 来访问<target-host>:<target-port>了。[bind-address]是一个可选项,如果不指定的话,那么只要能访问到 <local-port> 的机器就都可以访问到 <target-host>:<target-port> 了,比如另一台和命令执行的机器在同一个局域网内的机器。

-N选项的目的是不执行连接时的命令(一般是shell),只进行端口转发,还可以指定 -f,放到后台运行。

这个功能一般用来访问只有 <ssh-server> 能访问到的资源,比如,那些跑在 <ssh-server> 上的数据库,因安全问题,数据库设置成仅本地可访问,当我们需要使用ui工具时,就可以远程端口转到本地来。例如要访问 <ssh-server> 上的 postgres 服务,则需要在本地执行 ssh -NL 5432:localhost:5432 <ssh-server>

Remote转发

ssh -NL [clientspecified-address]<remote-port>:<target-host>:<target-port>  <ssh-server>

执行ssh命令的机器(ssh客户端),希望 <ssh-server> 通过自己可以访问到 <target-host>:<target-port>,在执行了上述命令后,就可以通过访问 <ssh-server>:<remote-port>来等效为 执行ssh命令的机器去访问 <target-host>:<target-port>

如果 <ssh-server> 在公网上,这个功能可以将本机的服务暴露到公网上去,供人访问。例如本机有一个测试的web服务(比如微信开发时,需要和微信的服务器交互)。这个功能还需要注意 sshd_config 中的 GatewayPorts 选项,no/yes/clientspecified,no表示只能 <ssh-server> 访问,而 yes 表示大家都可以访问, clientspecified表示由 [clientspecified-address]指定谁可以访问。


这两个功能在开发时都比较实用,PS:remote转发我还没有试过,先写在这里

ssh port forwarding的更多相关文章

  1. SSH Tunnel扫盲(ssh port forwarding端口转发)

    SSH的的Port Forward,中文可以称为端口转发,是SSH的一项非常重要的功能.它可以建立一条安全的SSH通道,并把任意的TCP连接放到这条通道中.下面仔细就仔细讨论SSH的这种非常有用的功能 ...

  2. SSH port forwarding: bind: Cannot assign requested address

    https://www.electricmonk.nl/log/2014/09/24/ssh-port-forwarding-bind-cannot-assign-requested-address/

  3. How to do SSH Tunneling (Port Forwarding)

    How to do SSH Tunneling (Port Forwarding) In this post we will see how ssh works?, what is SSH tunne ...

  4. 图解再谈ssh port forwarding-ssh隧道技术

    https://www.ramkitech.com/2012/04/how-to-do-ssh-tunneling-port-forwarding.html https://www.cnblogs.c ...

  5. GitLab non-standard SSH port

    /***************************************************************************** * GitLab non-standard ...

  6. OpenSSH高级功能之端口转发(Port Forwarding)

    在RedHat提供的系统管理员指南中提到OpenSSH不止是一个安全shell,它还具有X11转发(X11 Forwarding)和端口转发(Port Forwarding)的功能.X11功能一般用于 ...

  7. How To Set Up Port Forwarding in Linux

    Port forwarding usually used when we want our computer act like a router. Our computer receive the p ...

  8. Port Forwarding in Windows

    转自:http://woshub.com/port-forwarding-in-windows/ Since Windows XP there is a built-in ability in Mic ...

  9. NAT&Port Forwarding&Port Triggering

    NAT     Nat,网络地址转换协议.主要功能是实现局域网内的本地主机与外网通信.     在连接外网时,内部Ip地址需要转换为网关(一般为路由器Ip地址)(端口号也需要相应的转换)     如: ...

随机推荐

  1. poj 1795 DNA Laboratory

    DNA Laboratory Time Limit: 5000MS   Memory Limit: 30000K Total Submissions: 2892   Accepted: 516 Des ...

  2. SpringBoot中使用RestTemplate

    spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接, 我们只需要传入url及返回值类型即可 ...

  3. div模拟dropdownlist控件 div下拉菜单

    原文发布时间为:2009-10-16 -- 来源于本人的百度文章 [由搬家工具导入] 控件发布:div2dropdownlist(div模拟dropdownlist控件) div3dropdownli ...

  4. 安装聊天软件telegram-cli

    Telegram是一款加密通信的聊天软件,可以在linux,windows,android,chrome等运行.官方网址:https://telegram.org/ 它是有桌面版的,但作为一个linu ...

  5. hdu 4522(图论,构图)

    湫湫系列故事——过年回家 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  6. Codeforces 761E Dasha and Puzzle(构造)

    题目链接 Dasha and Puzzle 对于无解的情况:若存在一个点入度大于4,那么直接判断无解. 从根结点出发(假设根结点的深度为0), 深度为0的节点到深度为1的节点的这些边长度为2^30, ...

  7. 分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)

    1.业务场景 保险人管系统每月工资结算,平安有150万代理人,如何快速的进行工资结算(数据运算型) 保险短信开门红/电商双十一 1000w+短信发送(短时汇聚型) 工作中业务场景非常多,所涉及到的场景 ...

  8. CodeForces - 258D Little Elephant and Broken Sorting

    Discription The Little Elephant loves permutations of integers from 1 to n very much. But most of al ...

  9. 2016北京集训测试赛(十四)Problem B: 股神小D

    Solution 正解是一个\(\log\)的link-cut tree. 将一条边拆成两个事件, 按照事件排序, link-cut tree维护联通块大小即可. link-cut tree维护子树大 ...

  10. mysql count(*) 和count(1)区别

    count *更快, 不要加where,否则同count(1)效率相同 sql语句对大小写不敏感,关键字一般大写,其他小写, count(*)不加where,mysql会直接返回总条数,因为mysql ...