stunnel+squid搭建代理服务器

因为各种原因有时候我们需要使用某个固定ip帮我们访问一些站点。网上找了相关资料,发现stunnel配合squid挺ok。

代理服务器

安装squid

  • yum -y install squid 不同系统参考各自系统安装命令
  • 配置 vim /etc/squid/squid.conf,主要配置如下两处
    1
    2
    acl localnet src 20.0.0.222/32  # 根据实际情况修改,添加允许 stunnel-client 的ip地址.本地可以不用修改
    http_port 3128 # squid监听端口

安装Stunnel

  • yum -y install stunnel openssl openssl-devel

生成证书

  • openssl req -new -x509 -days 365 -nodes -out stunnel.pem -keyout stunnel.pem

修改Stunnel配置

  • vim /etc/stunnel/stunnel.conf 记得去除注释

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    cert = /etc/stunnel/stunnel.pem   ;;;# 认证文件
    CAfile = /etc/stunnel/stunnel.pem ;;;# 认证文件
    socket = l:TCP_NODELAY=1
    socket = r:TCP_NODELAY=1
    ;;;chroot = /var/run/stunnel
    pid = /tmp/stunnel_server.pid
    verify = 3
    ;;; CApath = certs
    ;;; CRLpath = crls
    ;;; CRLfile = crls.pem
    setuid = web ;;;# 报错的话可以删掉,我也不知道干啥用
    setgid = web ;;;# 报错的话可以删掉,我也不知道干啥用
    ;;; client=yes
    compression = zlib
    ;;; taskbar = no
    delay = no
    ;;; failover = rr
    ;;; failover = prio
    ;;; sslVersion = TLSv1
    ;;; fips=no
    sslVersion = all
    ;;; options = NO_SSLv2
    ;;; options = NO_SSLv3
    debug = 7
    syslog = no
    output = /var/logs/stunnel_server.log
    client = no ;;;# 服务端
    [sproxy]
    accept = 44660 ;;;# 监听端口
    connect = 66.0.0.6:3128 ;;;# squid服务连接端口
  • 启动服务 直接输入 stunnel 运行

本地服务器

只需要安装stunnel(yum -y install stunnel openssl-devel),将代理服务器生成的stunnel.pem复制过来

修改Stunnel配置

  • vim /etc/stunnel/stunnel.conf 记得去除注释
    1
    2
    3
    4
    5
    6
    7
    cert = /etc/stunnel/stunnel.pem 
    CAfile = /etc/stunnel/stunnel.pem
    client = yes
    output = /var/log/stunnel.log
    [sproxy]
    accept = 0.0.0.0:31999
    connect = 120.26.209.0:44660

怎么使用

  • 可以在代码里直接使用ip加端口代理。
  • 在谷歌浏览器里下载SwitchyOmega,配置ip和端口,只在浏览器里使用。
  • windows直接在internet里使用代理