学习代理服务器
作者:互联网
学习代理服务器
代理服务器,在客户端和服务端之间充当中间人,以便隐藏客户端的一些信息
在 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