haproxy的代理中继用法
背景:
现有:
一台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代理。需同时转发tcp和udp可考虑使用brook。
令:
其实这两个需求只用polipo即可实现。polipo可以把socks代理转为http代理,也可直接转发http请求(ipv4和ipv6也可互转),对于需求2,直接访问如上配置好的polipo的8123端口即可。对于需求1,可以给ss设置一个前置代理(win客户端有“正向代理设置"),同样访问8123即可。
使用polipo做http代理最好设置验证,否则被扫到端口很容易被盗用。设置验证在配置文件中添加:authCredentials=username:yourpwd(用户名密码无引号)。
需求1中的haproxy则是直接转发tcp请求,需指定出入端口,如出入端口不变,可写为ip段的格式,但开放大量端口的形式通常不是我们想要的。
haproxy的代理中继用法的更多相关文章
- Httpd Nginx Haproxy反向代理
Apache反向代理 部署httpd反向代理 准备工作: 三台虚拟机Ip地址分配: linux-node1:192.168.1.5 (源码编译httpd,并且配置proxy用于代理后端的httpd服务 ...
- haproxy反向代理配置示例
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Nginx、haproxy反向代理设置
Nginx反向代理配置: #user nobody; worker_processes ; events { worker_connections ; } http { include mime.ty ...
- Haproxy 反向代理
一.haproxy介绍 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. 特点如下: .支持两种代理模式:TCP(四层)和H ...
- Mysql的Haproxy反向代理和负载均衡
HaProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.应用到Haproxy主要是因为他免费,并且基于TCP和HTTP的应用代理. ...
- OpenResty 反向代理的用法与技巧
Nginx最开始是作为反向代理被熟知的,基于它的OpenResty的自然也是支持反向代理的,下面我们就来看看它的一些基本用法以及在使用过程中的一些技巧. 一.基本用法 在业务环境中,可能会将OpenR ...
- haproxy反向代理
haproxy是个高性能的tcp和http的反向代理.它就是个代理.不像nginx还做web服务器 官网地址为www.haproxy.org nginx的优点和缺点 优点: 1.web服务器,应用比较 ...
- 项目详解4—haproxy 反向代理负载均衡
一.企业服务架构图及负载均衡的要求 1.场景说明 在企业生产环境中,每天会有很多的需求变更,比如增加服务器.新业务上线.url路由修改.域名配置等等,对于前端负载均衡设备来说,容易维护,复杂度低,是首 ...
- haproxy反向代理环境部署(http和https代理)
操作背景:前方有一台haproxy代理机器(115.100.120.57/192.168.1.7),后方两台realserver机器(192.168.1.150.192.168.1.151,没有公网i ...
随机推荐
- RAD介绍及实战,LVM介绍及实战,磁盘常见故障
目录 一.RAID 1.RAID好处: 2.RAID的运行方式: 3.RAID的级别: 二.RAID实战 软RAID 1.RAID0 2.RAID1 3.RAID5 4.RAID10 三.LVM介绍 ...
- C++中static的作用
tatic关键字有俩作用:(1).控制存储分配:(2).控制一个名字的可见性和连接. 随着C++名字空间的引入,我们有了更好的,更灵活的方法来控制一个大项目的名字增长. 在类的内部使用st ...
- 【串线篇】SQL映射文件EmployeeDao.xml事项
Dao.xml或者说是mapper.xml一个意思 id:方法名,相当于这个配置是对于某个方法的实现 ,参数类型不用写,()也不用写 resultType:指定方法运行后的返回值类型全类名:(查询操作 ...
- 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
转载:https://blog.csdn.net/sunshinegyan/article/details/80017012 前提:本地已经安装好了MongoDB服务 1启动MongoDB: 方法1: ...
- linux find grep
find是文件查找, grep是文件内容查找. 1. find find path expression -options[-print -exec -ok] -print 将结果输出到标准输出: - ...
- 微信小程序点击顶部导航栏切换样式
类似这样的效果 <view class='helpCateList'> <!-- 类别 --> <scroll-view class='scroll-view' scro ...
- linux编译php
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/loc ...
- c#如何写服务,打包和卸载服务
Service.cs 每隔一分钟进行一次数据操作 public Service1() { InitializeComponent(); Sy ...
- BZOJ 3622: 已经没有什么好害怕的了(二项式反演)
传送门 解题思路 首先将\(a\),\(b\)排序,然后可以算出\(t(i)\),表示\(a(i)\)比多少个\(b(i)\)大,根据容斥套路,设\(f(k)\)表示恰好有\(k\)个\(a(i)\) ...
- BZOJ 4545
bzoj 4545 给定一个踹树,支持几种操作. 本质不同子串询问 加入子树 询问字符串\(S\) 在树上的出现次数. 好码好码 重点就是维护\(parent\) 树,考虑用\(LCT\)维护此树. ...