背景:
现有:一台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 daemondefaults log global mode tcp option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000#需求一:frontend ss-in bind *:12344 default_backend ss-outbackend ss-out server server1 a.a.a.a:17001 maxconn 20480# 需求二:frontend sunflower-in bind *:12345 default_backend sunflower-outbackend sunflower-out server server1 127.0.0.1:8123 maxconn 20480
- 配置/etc/polipo/config如下:
logSyslog = truelogFile = /dev/nullallowedPorts = 1-65535tunnelAllowedPorts = 1-65535proxyAddress = 0.0.0.0proxyPort = 8123
- 启动polipo和haproxy
sudo systemctl enable --now poliposudo systemctl enable --now haproxy
- 检查效果: 一:配置本地ss的server为a.a.a.a,port为12344,其他项保持为原来使用服务器B时的配置: 二:配置浏览器代理为http://a.a.a.a:12345,可成功访问国内网站:
不足:
haproxy无法进行udp代理。