ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习代理服务器

2021-12-05 18:03:06  阅读:244  来源: 互联网

标签:sudo http squid 代理 代理服务器 学习 客户端


学习代理服务器

代理服务器,在客户端和服务端之间充当中间人,以便隐藏客户端的一些信息

在 linux 上面存在两种最常见的代理,一种 http 代理,另一种是 socks 代理

网络连接情况

正常连接

客户端向服务端发送HTTP请求,服务端响应HTTP结果

客户端的IP地址、操作系统、浏览器信息都会被服务端获取到。

http 代理

客户端将HTTP请求发送给代理服务器,代理服务器将数据转发给服务器,服务器响应HTTP结果给代理服务器,代理服务器将HTTP结果返回给客户端

此时服务端获取到的IP地址、操作系统、浏览器信息,其实是代理服务器的信息

socks 代理

客户端和代理服务器建立ssh连接。客户端将HTTP请求通过ssh管道进行发送,代理服务器将数据发送给网站服务器,网站服务器响应HTTP结果,代理服务器通过ssh管道返回HTTP结果,客户端展示结果

它相比 http 代理,多了一个 ssh 管道的建立过程。优点和 http 代理一样。

演示代理的建立过程

http 代理

代理服务器(ubuntu 20.04)上面

# 安装 squid 代理软件
sudo apt install squid

# 备份配置文件
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.default

# 编辑配置文件
sudo vi /etc/squid/squid.conf
## 搜索http_access allow
## 打开 http_access allow localnet

# 重启 squid 应用
sudo systemctl restart squid

# 确保 squid 应用已经启动
sudo systemctl status squid

客户端

使用 postman,点击 settings -> proxy -> 勾选 add a custom proxy configuration,取消勾选 use the system proxy -> 输入 squid 的地址和端口(默认是3128)-> 然后在 postman 中访问网址

查看代理服务器连接请求

sudo vim /var/log/squid/access.log

给代理服务器增加更多配置(用户名、密码)

# 编辑 squid 配置
sudo vim /etc/squid/squid.conf

## 查询 acl,在 acl localnet src 0.0.0.1-0.255.255.255 前面加入以下语句
## 首先是添加基础程序参数,告知我们接下来要使用的基础身份验证
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/htpasswd
## 然后是添加参数,基础领域 Squid 代理缓存 Web 服务器,这只是告诉我们要为此身份提供验证
auth_param basic realm Squid Proxy Caching Web Server
## 告知需要进行身份验证的代理的 acl
acl authenticated proxy_auth REQUIRED
## 告知允许的IP地址
acl authenticated_ips src 192.168.45.5/32

## 查询 http_access allow localnet,修改它变成如下的样子,这句话说明必须遵守以下两个条件,才能使用代理服务器
http_access allow authenticated authenticated_ips

# 创建密码文件,记得修改 USERNAME 和 PASSWORD
sudo printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

# 重启 squid
sudo systemctl restart squid

给 postman 配置代理的用户名密码

打开 postman,在 settings -> proxy -> proxy auth -> 填写用户名、密码

socks 代理

这个比 http 代理简单多了,以下操作全部都是在客户端进行。使用

# 连接到服务器 192.168.70.4,同时监听端口 40932
ssh root@192.168.70.4 -D 40932

# 查看监听端口是否启动
netstat -natp | grep 40932

使用代理软件,例如 SwitchyOmega,输入本机IP地址(例如:localhost),端口(40932),开启连接,然后就能使用了

参考资料

How to Create a Proxy // Squid (HTTP) and SOCKS

标签:sudo,http,squid,代理,代理服务器,学习,客户端
来源: https://www.cnblogs.com/hellozjf/p/15646273.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有