码迷,mamicode.com
首页 > 其他好文 > 详细

测试ssh转发

时间:2019-08-04 13:41:26      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:erro   sed   返回   功能   tps   firewall   net   list   href   

端口转发提供:

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

加上不加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端口,代码改为:

server.bind((127.0.0.1, 8001))

再测试显示连接成功。

 

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

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

有一个缺点是,ssh转发普通用户就可以设定,如果想要取消转发功能,可以修改/etc/ssh/sshd_config,禁止转发。

 

测试ssh转发

标签:erro   sed   返回   功能   tps   firewall   net   list   href   

原文地址:https://www.cnblogs.com/starRebel/p/11297863.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!