其他分享
首页 > 其他分享> > 学习代理服务器

学习代理服务器

作者:互联网

学习代理服务器

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

在 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