+
80
-

linux如何搭建一个http代理服务器?

请问linux如何搭建一个http代理服务器?

网友回复

+
0
-

推荐两个工具

一、TinyProxy

tinyproxy 是一个面向 POSIX 系统开发的轻量级的开源 HTTP/HTTPS 代理守护进程,其从底层开始进行设计,保证了在高速的同时体积依然很小。它很适合用于需要完整 HTTP 代理特性,但系统资源又不足以运行大型代理的场景,比如嵌入式部署。

特性

Tinyproxy 的体积很小,也仅需少量系统资源。在使用 glibc 时,内存占用一般大约 2 MB,而 CPU 占用会随着连接数量线性增长(具体取决于连接速度)。因此,Tinyproxy 可用在比较老旧的计算机上,或者用在基于Linux的路由器等网络设备上,而不会对设备性能造成明显的影响。

Tinyproxy 的构建和运行仅需一个最小化的 POSIX 环境。同时,它可以用其他附加库来添加额外功能。

Tinyproxy 允许进行 HTTPS 连接的转发,而且无需通过 CONNECT 方法以任何形式修改流量内容(请参阅ConnectPort指令)。

Tinyproxy 支持被配置为一个透明代理,使客户端无需进行任何配置即可使用代理。您也可以将其用作您网站的反向代理前端。

使用 AddHeader 指令,您可以向传出的流量里添加或插入 HTTP 标头信息。

如果您要构建自定义Web代理,可以轻松地修改Tinyproxy以满足您的自定义需求。 源码结构非常简单,遵循 KISS 原则。 因此,可以把它作为基础,来实现您可能需要Web代理执行的任何操作。

Tinyproxy具有隐私功能,可让您配置哪些HTTP标头可被允许通过,哪些HTTP标头应被阻止。 这使您既可以限制从HTTP服务器向Web浏览器发送的数据(例如COOKIE),也可以限制从Web浏览器到HTTP服务器发送的数据(例如版本信息)。

通过使用远程监视工具,您可以远程获知代理统计信息,从而确切了解代理的繁忙程度。

您可以配置Tinyproxy来实现 访问控制 ,从而仅允许来自特定子网或特定接口的请求,从而确保那些随机出现的、未经授权的人不能使用您的代理。

只需进行一些配置(具体而言,将Tinyproxy创建的文件设为由非root用户拥有,并让它在大于1024的端口上运行),就能让 Tinyproxy 在没有任何特殊权限的情况下运行,从而将系统受到破坏的风险降至最低。 此外,它的设计致力于防止缓冲区溢出。 代码结构的简单也确保了此类bug易于定位。

1、安装 TinyProxy

yum -y install tinyproxy

2、配置 TinyProxy

vim /etc/tinyproxy/tinyproxy.conf

修改 Port 端口,默认为 8888

Port 8888

权限访问代理

#Allow 127.0.0.1

添加多段IP地址:

Allow 192.168.1.0/24

Allow 172.16.0.0/16

更多配置项

下面是列举一些配置文件默认的,不需要配置

PidFile “/var/run/tinyproxy/tinyproxy.pid” LogFile “/var/log/tinyproxy/tinyproxy.log” LogLevel Info MaxClients 100 MinSpareServers 5 MaxSpareServers 20 StartServers 10

3、启动 TinyProxy

systemctl start tinyproxy.service systemctl stop tinyproxy.service systemctl enable tinyproxy.service

4、查看代理请求日志

tail -f /var/log/tinyproxy/tinyproxy.log

二、Squid

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

使用squid搭建http服务器

1. 安装Squid

yum install squid

2.编辑Squid

vi /etc/squid/squid.conf

3.设置Squid

最底部增加 如下

http_access allow all

然后 注释掉

http_access deny all

4.启动

systemctl start squid

centos7 设置代理

1.全局代理

vi /etc/profile

添加:

export http_proxy=http://192.168.5.46:3128

export https_proxy=http://192.168.5.46:3128

192.168.5.46是设置代理的服务器。3128是代理的端口

2.yum代理

vi /etc/yum.conf

添加:

porxy=http://192.168.5.46:3128

3. docker 代理

mkdir -p /etc/systemd/system/docker.service.d

[root@node41 ~]# vi /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]

Environment="HTTP_PROXY=http://192.168.5.46:3128"

[root@node41 ~]# vi /etc/systemd/system/docker.service.d/https-proxy.conf

[Service]

Environment="HTTPS_PROXY=http://192.168.5.46:3128"

systemctl restart docker

4. wget的代理

#打开/wgetrc文件 vim /etc/wgetrc #修改Proxy代理信息 http_proxy=http://192.168.5.46:3128

ftp_proxy=http://192.168.5.46:3128

我知道答案,我要回答