设为首页 收藏本站
查看: 1237|回复: 0

[经验分享] 使用haproxy 实现 http/ssh/mstsc复用

[复制链接]

尚未签到

发表于 2019-1-1 14:14:55 | 显示全部楼层 |阅读模式
  网上较多HTTP/SSH复用,但实际环境中,使用HAPROXY做IIS负载均衡时,还需要使用80端口来使用远程桌面管理服务器。
  近日通过Wireshark抓包,找到了TPKT的报头字段,终于成功实现RDP协议复用:

  注:通常RDP使用TPKT作为其传输协议,TPKT运行在TCP之上。 当用于传输RDP时,使用的TCP端口是3389,而不是正常的TPKT端口102。
  参考文献:
  http://blog.csdn.net/kevin_bobolkevin/article/details/50790967
  TPKT通讯说明

  https://wenku.baidu.com/view/9f509844e2bd960591c67723.html
  



  

  最终配置文件如下,供参考:
  ------------------------------------------------------
  

  global
  daemon
  user haproxy
  group haproxy
  maxconn 49985
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  # tune.ssl.default-dh-param 2048
  

  defaults
  mode tcp
  log global
  log 127.0.0.1 local0 err
  

  option tcplog
  option dontlog-normal
  

  timeout connect    10s
  timeout queue      30s
  timeout client     15m
  timeout client-fin 15m
  timeout server     15m
  timeout tunnel     12h
  

  listen monitor
  bind *:8888
  #监听端口
  mode http
  #http的7层模式
  log global
  log 127.0.0.1 local0 err
  

  maxconn 5
  

  option httplog
  

  stats enable
  stats uri /
  stats refresh 15s
  

  timeout connect    10s
  timeout queue      30s
  timeout client     30s
  timeout server     30s
  

  listen http
  bind *:80
  maxconn 800
  timeout client 1h
  tcp-request inspect-delay 2s
  acl is_http req.payload(0,3) -m bin 474554 504f53 505554 44454c
  acl is_ssh req.payload(0,3) -m bin 535348
  acl is_rdp req.payload(0,3) -m bin 030000
  tcp-request content accept if is_http
  # use_backend http if is_http
  use_backend ssh if is_ssh
  use_backend rdp if is_rdp
  #监听端口
  option tcpka
  #是否允许客户端发送tcp keepalive 包,这个和http 的keepalive 没有关系
  #option redispatch
  #是否允许失败后重新分配session  这个设置会存在返回的K/3CLOUD系统的session id变化导致闪退。可能的原因服务端有异常或者传输出现了异常
  option abortonclose
  #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
  #tcp-request inspect-delay 30s
  

  hash-type consistent
  balance roundrobin
  stick-table type ip size 10240k expire 24h
  stick on src
  server server01  192.168.90.121:80  weight 100  check agent-check agent-port 3333 minconn 0 maxconn 250 on-marked-down shutdown-sessions
  server server02  192.168.90.122:80  weight 100  check agent-check agent-port 3333 minconn 0 maxconn 250 on-marked-down shutdown-sessions
  

  backend ssh
  mode tcp
  timeout server 1h
  server server-ssh 192.168.90.126:22
  

  backend rdp
  mode tcp
  timeout server 1h
  server server-mstsc 192.168.90.121:3389
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658331-1-1.html 上篇帖子: Haproxy 常用acl规则与会话保持 下篇帖子: 通过HAproxy实现动静分离
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表