博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Docker搭建Squid代理服务器
阅读量:7081 次
发布时间:2019-06-28

本文共 4351 字,大约阅读时间需要 14 分钟。

title: Docker搭建代理服务器tags:    - Squidcategories:    - Linux

[TOC]

环境说明

项目 说明
系统 Deepin 15.5

步骤

  • 安装Docker
  • 安装Squid容器
  • 生成认证文件
  • 配置Squid服务器
  • 启动Squid容器
  • 设置代理地址
  • 使用代理

安装Docker

# 下载安装脚本$ curl -fsSL get.docker.com -o get-docker.sh# 安装 docker$ sudo sh get-docker.sh# 启动 docker$ sudo service docker start

安装Squid容器

# 从docker hub下载容器$ docker pull sameersbn/squid# 在docker中创建容器$ docker run --name squid -d --restart=always \  --publish 3128:3128 \  --volume /srv/docker/squid/cache:/var/spool/squid3 \  sameersbn/squid

配置用户名密码认证

# 生成认证文件$ sudo htpasswd squid_passwd your-username## 在这里输入两次密码# 将认证文件拷贝至容器$ sudo docker cp squid_passwd squid:/etc/squid3/

Squid配置

配置文件大概如下

acl localnet src 10.0.0.0/8    # RFC1918 possible internal networkacl localnet src 172.16.0.0/12    # RFC1918 possible internal networkacl localnet src 192.168.0.0/16    # RFC1918 possible internal networkacl localnet src fc00::/7       # RFC 4193 local private network rangeacl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machinesacl localnet src 0.0.0.0/0.0.0.0acl localnet src 0.0.0.0/8acl SSL_ports port 443acl Safe_ports port 80        # httpacl Safe_ports port 21        # ftpacl Safe_ports port 443        # httpsacl Safe_ports port 70        # gopheracl Safe_ports port 210        # waisacl Safe_ports port 1025-65535    # unregistered portsacl Safe_ports port 280        # http-mgmtacl Safe_ports port 488        # gss-httpacl Safe_ports port 591        # filemakeracl Safe_ports port 777        # multiling httpacl CONNECT method CONNECT# username&password auth configauth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squid_passwdacl ncsa_users proxy_auth REQUIREDhttp_access allow ncsa_usershttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portshttp_access allow localhost managerhttp_access deny managerhttp_access deny to_localhosthttp_access allow localnethttp_access allow localhosthttp_access deny allhttp_port 3128cache_dir ufs /var/spool/squid3 100 16 256coredump_dir /var/spool/squid3refresh_pattern ^ftp:        1440    20%    10080refresh_pattern ^gopher:    1440    0%    1440refresh_pattern -i (/cgi-bin/|\?) 0    0%    0refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880refresh_pattern .        0    20%    4320

将配置文件导入Squid容器

$ sudo docker cp squid-simple.conf squid:/etc/squid3/squid.conf

配置文件生成说明

# 从Squid容器中导出默认配置文件$ sudo docker cp squid:/etc/squid3/squid.conf ./# 去掉注释$ sudo awk '/^[^#]/' squid.conf > squid-simple.conf# 编辑配置文件$ sudo vim squid-simple.conf## 在这里添加几行## acl localnet src 0.0.0.0/0.0.0.0## acl localnet src 0.0.0.0/8## auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squid_passwd## acl ncsa_users proxy_auth REQUIRED## http_access allow ncsa_users

启动或重启容器

# 启动容器$ sudo docker start squid# 重启容器$ sudo docker restart squid

使用代理

## 代理地址# http://{your-username}:{your-password}@{your-ip OR domain-name}:3128## 例如# http://root:root@202.118.1.100:3128## 在Linux终端中使用代理export ftp_proxy=http://{your-username}:{your-password}@{your-ip OR domain-name}:3128export http_proxy=http://{your-username}:{your-password}@{your-ip OR domain-name}:3128export https_proxy=http://{your-username}:{your-password}@{your-ip OR domain-name}:3128## 例如export ftp_proxy=http://root:root@202.118.1.100:3128export http_proxy=http://root:root@202.118.1.100:3128export https_proxy=http://root:root@202.118.1.100:3128

演示

代理成功

bovenson@ThinkCentre:~/Tmp$ export http_proxy=http://***:***@***.***.***.***:3128bovenson@ThinkCentre:~/Tmp$ export https_proxy=http://***:***@***.***.***.***:3128bovenson@ThinkCentre:~/Tmp$ wget www.baidu.com--2018-04-15 00:40:52--  http://www.baidu.com/正在连接 ***.***.***.***:3128... 已连接。已发出 Proxy 请求,正在等待回应... 200 OK长度:2381 (2.3K) [text/html]正在保存至: “index.html.1”index.html.1                             100%[==================================================================================>]   2.33K  --.-KB/s  用时 0s      2018-04-15 00:40:52 (333 MB/s) - 已保存 “index.html.1” [2381/2381])

认证失败

bovenson@ThinkCentre:~/Tmp$ export http_proxy=http://***.***.***.***:3128bovenson@ThinkCentre:~/Tmp$ export https_proxy=http://***.***.***.***:3128bovenson@ThinkCentre:~/Tmp$ wget www.so.com--2018-04-15 00:42:01--  http://www.so.com/正在连接 ***.***.***.***:3128... 已连接。已发出 Proxy 请求,正在等待回应... 407 Proxy Authentication Required2018-04-15 00:42:01 错误 407:Proxy Authentication Required。

参考

转载地址:http://gjvml.baihongyu.com/

你可能感兴趣的文章
CopyOnWriteList-JDK1.8
查看>>
Python多线程一学就会!
查看>>
django 常用 import
查看>>
安卓手机APP压力monkey测试
查看>>
NGS数据的Duplication
查看>>
Modelsim-altera 仿真 顶层原理图设计的FPGA
查看>>
【jQuery插件】用jQuery Masonry快速构建一个pinterest网站布局(转)
查看>>
PHP权限控制(转)
查看>>
谈谈easyui datagrid 的数据加载(转)
查看>>
团队博客
查看>>
2012-2013 ACM-ICPC, NEERC, Central Subregional Contest
查看>>
[转]What is closure
查看>>
C#设计模式-1简单工厂模式Simple Factory)
查看>>
Android动画分析
查看>>
最优非对称加密填充(OAEP)和PSS(Probabilistic Signature Scheme)
查看>>
【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
查看>>
JVM核心机制(类加载器、三种类加载器、代理加载模式、双亲委派机制
查看>>
接收发送邮件
查看>>
python 函数参数多种传递方法
查看>>
leetcode-482-License Key Formatting
查看>>