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. spring rest 请求怎样添加Basic Auth请求頭

    请自行揣摩代码 package com.hudai.platform.manager.util; import java.net.URI; import java.net.URISyntaxExcep ...

  2. Repeater控件实现一行显示多条数据 Asp.net

    原文发布时间为:2009-05-11 -- 来源于本人的百度文章 [由搬家工具导入]        asp.net中Repeater控件可以很方便显示数据库的数据,使用传统的Table来布局,只能实现 ...

  3. js6:history和navigator对象的学习

    原文发布时间为:2008-11-08 -- 来源于本人的百度文章 [由搬家工具导入] <html> <head> <title>js</title> & ...

  4. WPF 自动选择dll,以SQLite为例

    在学习sqlite的过程中,发现它的dll是区分32位和64位的,起初觉得很恼火,但是仔细看了下, 发现让程序自行选择dll其实也不是一件很麻烦的事情,如下: 1>创建一个sqlite数据 2& ...

  5. Hadoop-hdfs安装与配置

    一.安装要求   安装JDK   yum -y install jdk(或手动安装)  设置namenode节点到datanode节点的免密码登陆   a. 本地免密码登录     # ssh loc ...

  6. 定时执行rsync同步数据以及mysql备份

    需求:把机器A中的附件.图片等,备份到备份机B中.将数据库进行备份 附件备份 在A中,启动rsync服务,编辑/etc/xinetd.d/rsync文件,将其中的disable=yes改为disabl ...

  7. (一)为什么要学习docker

    一.docker的历史与现状 1.PAAS平台的范围和内容 1.确定产品定位和需求,确定首次迭代的范围. 2.制作界面原型. 以下是 paas 范畴 .技术选型,然后根据技术选型为每个开发者搭建开发环 ...

  8. Codeforces Round #449 (Div. 2) B. Chtholly's request【偶数位回文数】

    B. Chtholly's request time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  9. ATOM入坑必备插件

    Atom作为Javascript/CSS/HTML等前端编辑器利器,其强大功能依靠各种插件,以下是笔者在入坑阶段,精挑细选总结出的必不可少的插件,熟悉运用这些插件,一定成吨提高生产效率.安装这些插件只 ...

  10. HDU - 2970 Suffix reconstruction

    Discription Given a text s[1..n] of length n, we create its suffix array by taking all its suffixes: ...