背景:

现有:
一台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进行端口转发使用Haproxy进行端口转发

最新文章

  1. Linux的IO性能监控工具iostat详解
  2. BestCoder22 1003.NPY and shot 解题报告
  3. 微软曝光眼球追踪新专利,未来或将可以使用眼球控制HoloLens
  4. redis 安装并设置为开机启动服务
  5. 2013年山东省第四届ACM大学生程序设计竞赛-最后一道大水题:Contest Print Server
  6. OPTICS光学算法
  7. nRF52系列——Get started
  8. Web API核查表:设计、测试、发布API时需思考的43件事[转]
  9. FFTW程序Demo
  10. 初窥Linux 之 区分硬连接和软连接
  11. listview前几个item怎么不停加载
  12. UWP 判断Windows10系统版本
  13. java位移运算符3 转
  14. Java try和catch的使用介绍
  15. 茗洋Easy UI 1.3.5 部分问题解决系列专题[自定义alert关闭时间,自动关]
  16. Basic Router Architecture
  17. js中编写velocity逻辑
  18. ubuntu网络连接:Ifupdown(eth0)的连接不能修改或删除
  19. yii学习记录-gii配置
  20. [转]emailjs-smtp-client

热门文章

  1. sql datetime类型数据如果进行模糊查询
  2. CSS中表示颜色的4种方法
  3. Solr添加索引
  4. vue+cesiumjs环境搭建【import引入】
  5. TableStore最佳实践:GEO索引打造店铺搜索系统
  6. PIC16F877A的TIME0学习
  7. configure: error: invalid variable name: `-prefix'
  8. JDK各个版本比较
  9. 分布式系统理论基础2 :CAP
  10. 【Windows、SVN】在Windows服务器下安装SVN,并在客户端能维护代码版本