haproxy的代理中继用法

醉酒当歌 提交于 2019-11-26 23:57:59

背景:

现有:
一台baidu/ali/tecent云服务器A(地址为a.a.a.a);
一台VPS B(地址为b.b.b.b), B中搭建有ss,监听端口为8000.

需求:

一:使用A做跳板机访问B中搭建的ss。且使用A的12344端口。(即把A的12344转发到B的8000)
二:使用A做跳板机访问国内网站。且使用A的12345端口。

其他要求:使用haproxy实现。

解决方案:

  • 对需求一,只需要安装haproxy,对需求二,额外安装polipo(或其他http代理服务器)完成。
  • 配置/etc/haproxy/haproxy.cfg如下:
global
    user haproxy
    group haproxy
    daemon

defaults
    log global
    mode tcp
    option dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000

#需求一:
frontend ss-in
    bind *:12344
    default_backend ss-out

backend ss-out
    server server1 a.a.a.a:17001 maxconn 20480


# 需求二:
frontend sunflower-in
    bind *:12345
    default_backend sunflower-out
backend sunflower-out
    server server1 127.0.0.1:8123 maxconn 20480
  • 配置/etc/polipo/config如下:
logSyslog = true
logFile = /dev/null

allowedPorts = 1-65535
tunnelAllowedPorts = 1-65535

proxyAddress = 0.0.0.0
proxyPort = 8123
  • 启动polipo和haproxy
sudo systemctl enable --now polipo
sudo systemctl enable --now haproxy
  • 检查效果:
    一:配置本地ss的server为a.a.a.a,port为12344,其他项保持为原来使用服务器B时的配置:

二:配置浏览器代理为http://a.a.a.a:12345,可成功访问国内网站:

不足:
haproxy无法进行udp代理。

使用Haproxy进行端口转发使用Haproxy进行端口转发

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!