当前位置: 首页 > article >正文

Squid安装与配置(ip代理)

继前面一篇Tinyproxy安装与配置(ip代理),在实际使用中会发现在请求一些网站时会被拒绝,那是因为Tinyproxy其实不支持所谓的高匿代理。所以这次用功能更加丰富的squid试试。

1、安装

yum install squid -y
yum install httpd-tools -y

2、配置

1、备份原始配置(确实已经有个default了)

mv squid.conf squid.conf.bak

2、新增配置

# 设置你的监听端口
http_port 3128

# 设置授权
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED

# 只允许通过身份验证的用户
http_access allow auth_users
# 设置哪些ip段可以使用代理Ip,我设置了全部
acl allowed_ips src all
http_access allow allowed_ips

# 拒绝对代理的所有其他访问
http_access deny all
#以下是高匿的设置
request_header_access Via deny all
request_header_access X-Forwarded-For deny all

# 设置你的出口ip
#acl ip1 myip 1.1.1.1
#tcp_outgoing_address 1.1.1.1 ip1

注意一下上面的basic_ncsa_auth文件路径可能不对,可以用find找一下。

3、设置密码

sudo htpasswd -c /etc/squid/passwords admin

输入两遍密码

4、测试一下配置是否有语法错误

sudo squid -k check

5、自动添加本机IP脚本

vim add_ip.sh
#!/bin/bash

# 获取本机所有IP地址列表
ip_addresses=($(hostname -I))

# Squid配置文件路径
squid_conf="/etc/squid/squid.conf"

# 遍历IP地址列表,为每个IP添加参数到配置文件
for ip in "${ip_addresses[@]}"
do
    # 添加 acl 参数
    echo "acl ip${ip//./_} myip $ip" | sudo tee -a "$squid_conf" > /dev/null

    # 添加 tcp_outgoing_address 参数
    echo "tcp_outgoing_address $ip ip${ip//./_}" | sudo tee -a "$squid_conf" > /dev/null
done

添加权限

chomd 755 add_ip.sh

执行脚本

sh add_ip.sh

重新打开squid.conf文件看看变化,再自己调整一下。

3、测试

curl -x http://admin:密码@IP:3128 http://httpbin.org/get

OK,一切正常,收工!!

4、常用命令

启动Squid服务:

sudo systemctl start squid

停止Squid服务:

sudo systemctl stop squid

重启Squid服务:

sudo systemctl restart squid

查看Squid服务状态:

sudo systemctl status squid

检查Squid配置文件是否有语法错误:

sudo squid -k check

刷新Squid缓存:

sudo squid -k reconfigure

强制Squid重新读取配置文件:

sudo squid -k parse

显示Squid版本信息:

squid -v

设置开机自启动

sudo systemctl enable squid

5、参考

https://blog.mjjman.com/archives/39
https://bbs.huaweicloud.com/blogs/354758


http://www.kler.cn/a/158458.html

相关文章:

  • UniAPP快速入门教程(一)
  • 高级java每日一道面试题-2024年11月07日-Redis篇-Redis有哪些功能?
  • 一个交替优化问题的求解
  • Excel数据动态获取与映射
  • 向量数据库FAISS之五:原理(LSH、PQ、HNSW、IVF)
  • 集群聊天服务器(13)redis环境安装和发布订阅命令
  • leetcode面试经典150题——33 最小覆盖子串(滑动窗口)
  • 基于SpringBoot的驾校管理系统
  • Linux-实现小型日志系统
  • 【SpringCloud系列】@FeignClient微服务轻舞者
  • 【C++】动态内存管理——new和delete
  • Python字符串格式化
  • 数据结构-带头双向循环链表
  • 【4】PyQt输入框
  • BabySpartan:对non-uniform computation的Lasso-based SNARK
  • AWS攻略——创建VPC
  • 市场调研:2023年SLG游戏行业需求及发展前景预测
  • 12.5作业
  • 06_单元测试与反射
  • Elasticsearch分词器--空格分词器(whitespace analyzer)
  • 15.Servlet [一篇通]
  • Node-red在Windows上离线部署
  • Android 12.0 修改Android系统的通知自动成组的数量
  • kubectl获取命名空间下所有configmap集合的方法
  • Anaconda创建虚拟环境以及Pycharm和Jupyter如何切换虚拟环境
  • 【1day】用友 U8 Cloud系统TaskTreeQuery接口SQL注入漏洞学习