• 玩转SSH端口转发


    ssh端口转发(tunnel)

      我们在实施项目部署时经常会遇到一种问题,那就是当我们给一些安全系数高的客户部署服务时,大多都不会给我们提供公网访问的权限,但是很多时候为了方便又会允许服务器直接访问公网,遇到这种情况大多有两种办法:

    • 客户搭建VPN服务,通过VPN实现内网登录服务器
    • 到客户现场部署
        当客户提供VPN时还是比较理想的一种操作办法,部署维护起来都比较方便,但是如果是现场部署呢?难道让我们今后每次维护起来都要到现场么?显然难度比较大,今天来介绍一种技术来通过端口转发技术来解决这一问题。

    端口转发的三种模式

    • 本地端口转发

    本地通过SSH隧道访问远程服务器内的端口。
    格式:-L <local_port>:<host>:<host_port> <ssh_server>
    例如:ssh -p 1234 -L 5656:localhost:8080 federico@www.federico.xin
    最后我们通过访http://localhost:5656就能够访问到服务器的8080端口。

    • 远程端口转发

    远程服务器通过SSH隧道访问本地端口。用于内网穿透。
    格式:-R <remote_port>:<host>:<host_port> <ssh_server>
    例如:ssh -p 1234 -R 5656:localhost:80 federico@www.federico.xin
    最后我们在远程服务器端访问http://localhost:5656就可以访问内网映射服务器。
    ssh -p 1234 -R 5656:localhost:22 federico@www.federico.xin当命令变为映射当前服务器的ssh端口可以实现在远程服务器访问5656端口,直接转到本地服务器,也就是我们最开始叙述要实现的功能了。

    • 动态端口转发

    SSH 是创建了一个 SOCKS 代理服务。
    格式:ssh -D <local port> <SSH Server>
    例如:ssh -p 1234 -D 5656 federico@www.federico.xin接下来将本地浏览器设置SOCKS代理通过5656端口即可使用。

    修改sshd_config配置文件已支持以上端口转发操作。

    sshd_config

    AllowTcpForwarding yes
    GatewayPorts yes
    

    了解我们需要的ssh详细参数

    • -f Fork into background after authentication.
      后台认证用户/密码,通常和-N连用,不用登录到远程主机。
    • -L port:host:hostport
      将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
    • -N Do not execute a shell or command.
      不执行脚本或命令,通常与-f连用。
      试试这个命令吧:ssh -p 1234 -NfR 5656:localhost:80 federico@www.federico.xin看看能不能实现我们最初的需求吧。

      让我们开始玩转ssh吧。

  • 相关阅读:
    Structure Boundary Preserving Segmentation for Medical Image With Ambiguous Boundary(理解)
    Deep Gamblers: Learning to Abstain with Portfolio Theory(理解)(github代码)
    DeepSurv: Personalized Treatment Recommender System Using A Cox Proportional Hazards Deep Neural Network(理解)(github代码)
    Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting(理解)(github代码)
    【分类算法】朴素贝叶斯(Naive Bayes)
    【分类算法】感知机(Perceptron)
    【集成模型】Boosting
    【集成模型】Stacking
    【集成模型】Bootstrap Aggregating(Bagging)
    数据科学导引(大纲)
  • 原文地址:https://www.cnblogs.com/Cherry-Linux/p/7871763.html
Copyright © 2020-2023  润新知