全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: SAJ

[疑问] [教程]使用Nginx做TCP/UDP中转服务器

  [复制链接]
发表于 2021-7-14 11:26:36 来自手机 | 显示全部楼层
使用rinetd中都是把端口当成服务监听,所以是长连接,如果是ssh这样的服务在使用端口转发后会在内网连接上的服务上残余很多进程,所以在使用rinetd一般是临时快速实现端口转发而用的,如果是长时间使用或者一些特殊场景下rinetd还是不如iptables的
发表于 2021-7-14 11:49:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2021-7-14 11:51:15 | 显示全部楼层
可以加快ssh连接速度吗
发表于 2021-7-14 12:13:10 | 显示全部楼层


这个可以端口段么
发表于 2021-7-14 12:34:30 | 显示全部楼层
很棒很棒,我去试试效果如何
发表于 2021-7-14 12:36:12 | 显示全部楼层
dunce 发表于 2021-7-12 17:56
实测nginx转发延迟和带宽都不如haproxy,原因未知。。

另外如果只是单纯的转发的话,可以试试realm=-= 我 ...

大锅,你这个fork似乎把config的格式全给改了?
发表于 2021-7-14 12:36:58 | 显示全部楼层
用Haproxy做中转同时端口复用(不清楚怎么中转UDP知道的可以说一下

安装:
haproxy.debian.net 支持debian和ubuntu 推荐2.4 LTS或者2.2 LTS

centos建议直接yum安装。大概装上的是1.5版本。


配置文件

  1. global
  2.         log 127.0.0.1   local0 info
  3.         log /dev/log    local0
  4.         log /dev/log    local1 notice
  5.         stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
  6.         stats timeout 30s
  7.         user haproxy
  8.         group haproxy
  9.         daemon
  10.         #ulimit-n 131109
  11.         maxconn 65535
  12.         #chroot /usr/local/haproxy

  13. defaults
  14.         log     global
  15.         mode    tcp
  16.         retries 3
  17.         option  redispatch
  18.         option  abortonclose
  19.         option  dontlognull
  20.         option  tcplog
  21.         maxconn 10000
  22.         timeout connect 10s
  23.         timeout client  50s
  24.         timeout server  50s
  25.         timeout check   200s
  26.         balance roundrobin
  27.         balance source
  28.         balance leastconn



  29. frontend ws-tls-in #ws-tls模式,根据SNI分流,运行在四层,判断tcp包的SNI分流。
  30.     bind *:本地监听端口1
  31.     log global
  32.     option tcplog
  33.     mode tcp
  34.     tcp-request inspect-delay 5s
  35.     tcp-request content accept if { req.ssl_hello_type 1 }

  36.         acl 规则1名称 req_ssl_sni -i 你的服务器1的SNI域名
  37.         use_backend 后端1名称 if 规则1名称
  38.        
  39.         acl 规则2名称 req_ssl_sni -i 你的服务器2的SNI域名
  40.         use_backend 后端2名称 if 规则2名称

  41. backend 后端1名称
  42.         mode tcp
  43.         server 服务器1名称 你的服务器IP或者解析到IP的域名:443(或者其他端口) check inter 60s rise 2 fall 3
  44.        
  45. backend 后端2名称
  46.         mode tcp
  47.         server 服务器2名称1 你的服务器IP1或者解析到IP的域名1:443(或者其他端口) check inter 60s rise 2 fall 3
  48.        
  49.         server 服务器2名称2 你的服务器IP2或者解析到IP的域名2:443(或者其他端口) check inter 60s rise 2 fall 3 #配置了负载均衡或者双IP服务器可以使用多条规则
  50.        

  51.        
  52. frontend ws-in #裸ws协议,运行在七层,根据Host头分流,注意host头可以是任意的,比如xxx.baidu.com,推荐使用北岸域名
  53.     bind *:本地监听端口2
  54.     mode http
  55.         log global
  56.     option httplog
  57.        
  58.         acl 规则3名称 hdr_dom(host) -i 你的自定义host域名1(如xxx1.baidu.com)
  59.         use_backend 后端3名称 if 规则3名称
  60.        
  61.         acl 规则4名称 hdr_dom(host) -i 你的自定义host域名2(如xxx2.baidu.com)
  62.         use_backend 后端4名称 if 规则4名称


  63. backend 后端3名称
  64.         mode http
  65.         server 服务器3名称 你的服务器IP或者解析到IP的域名:80(或者其他端口) check inter 60s rise 2 fall 3       
  66.        

  67. backend 后端4名称
  68.         mode http
  69.         server 服务器4名称1 你的服务器IP1或者解析到IP的域名1:80(或者其他端口) check inter 60s rise 2 fall 3       
  70.         server 服务器4名称2 你的服务器IP2或者解析到IP的域名2:80(或者其他端口) check inter 60s rise 2 fall 3
  71.        
  72. frontend cdn-ws-tls-in #专门中转cloudflare,且使用ws-tls协议,通过haproxy鉴定中转数据包的SNI以鉴权,防止被别人扫到端口然后滥用
  73.         bind *:本地监听端口3
  74.     mode tcp
  75.     log global
  76.     option tcplog
  77.         tcp-request inspect-delay 5s
  78.     tcp-request content accept if { req.ssl_hello_type 1 }
  79.        
  80.         acl cloudflare req_ssl_sni -i 套了cdn的域名1 #这里的域名如果ns在cf则云朵开不开启cf均可以回源,如果ns不在cf我也不清楚怎么写
  81.         acl cloudflare req_ssl_sni -i 套了cdn的域名2
  82.         acl cloudflare req_ssl_sni -i 套了cdn的域名3
  83.        
  84.     use_backend cdn-ws-tls-out if cloudflare
  85.        
  86. backend cdn-ws-tls-out
  87.     mode tcp
  88.     server cloudflare1 cloudflare.com:443 check inter 60s rise 2 fall 3
  89.         server cloudflare2 104.19.28.47:443 check inter 60s rise 2 fall 3
  90.         server cloudflare3 104.16.25.41:443 check inter 60s rise 2 fall 3
  91.         #可以写多个自选ip节点,负载均衡。
  92.        
  93.        
  94.        
  95.        
  96.        
  97.        

  98.        
复制代码


发表于 2021-7-14 12:52:18 | 显示全部楼层
mark大佬
发表于 2021-7-14 13:02:59 | 显示全部楼层
kejiweng0 发表于 2021-7-14 12:13
这个可以端口段么


不可以
还是就是要转udp要用最新的版本
发表于 2021-7-14 13:07:38 | 显示全部楼层
  1. nc -l -k -p 666-c "nc hostloc.com 3389"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-10-4 08:53 , Processed in 0.359227 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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