zoukankan      html  css  js  c++  java
  • 测试ssh转发

    端口转发提供:

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

    2.突破防火墙的限制完成一些之前无法建立的 TCP 连接。

    但是只能转发tcp连接,想要转发UDP,需要另外安装软件。

    场景一:

    现在有A,B两台机器,可以互相ssh访问,但是B上防火墙组织所有其他端口访问,想通过ssh转发,让A的8000端口访问B上8001端口。

    A的ip:192.168.66.19

    B的ip:192.168.66.78

    B内开启防火墙 systemctl start firewalld。

    从A访问B的8001端口会返回:

    OSError: [Errno 113] No route to host

    在A上配置本地转发:

    ssh -L 8000:localhost:8001 -fN test@192.168.66.78  # ssh -L <local port>:<remote host>:<remote port> <SSH hostname>  这里<remote host>和<SSH hostname>都是B机器,
    <SSH hostname>表示接受ssh连接的机器,而<remote host>表示最终被转发的机器,两者可以是两个机器,实现穿透防火墙。

    加上不加fN会显示的登陆test@192.168.66.78建立连接,加上之后在后台建立。

    修改测试脚本访问本地8000端口:

    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect(('localhost', 8000))
    client.send("hello world".encode('utf-8'))

    B机器上的server代码如下:

    import socket
    import sys
    
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server.bind(('192.168.66.78', 8001))
    
    while True:
      print("listening on 8001")
      server.listen(5)
      conn,addr = server.accept()
      print("accept ", addr)
    
      data = conn.recv(1024)
      print(data)
      conn.close()

    结果显示

    channel 2: open failed: connect failed: Connection refused

    后来发现,B上的server代码需要监听的是本地的8001端口,因为配置转发的时候是“8000:localhost:8001”,表示在B机器上会转发到localhost:8001。代码改为:

    server.bind(('127.0.0.1', 8001))

    再测试显示连接成功。

    参考:https://blog.csdn.net/nimasike/article/details/73289777

     https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/

    https://blog.csdn.net/weixin_41919236/article/details/85015781

    远程转发和本地转发原理一样,区别只是在于在哪台主机上进行配置。

    有一个缺点是,ssh转发普通用户就可以设定,如果想要取消转发功能,可以修改/etc/ssh/sshd_config,配置“AllowTcpForwarding  no”禁止转发,默认是开启转发。

  • 相关阅读:
    数据结构8.4_动态存储管理之伙伴系统
    http code码实验
    php问题
    对称加密和非对称加密
    公钥与私钥,HTTPS详解
    数字证书原理,公钥私钥加密原理
    简明 Nginx Location Url 配置笔记
    HTTP状态码精简版
    给你掰扯清楚什么是正向代理,什么是反向代理
    关键字
  • 原文地址:https://www.cnblogs.com/starRebel/p/11297863.html
Copyright © 2011-2022 走看看