为多IP服务器创建HTTP代理并让出入口IP一致

在 Debian 11 上安装 Squid 启动http代理并且让出口和入口IP一致
至于为什么不用tinyproxy呢,他在很多指纹浏览器都表现出不稳定,时断时续,故此我采用了Squid

1.打开终端。你可以通过搜索或快捷方式打开终端。

2.首先,你需要使用apt命令更新你的系统。输入以下命令并按回车键:

sudo apt update

3.系统更新完成后,你可以开始安装 Squid。输入以下命令并按回车键:

sudo apt install squid

4.安装完成后,你可以通过运行以下命令来确认 Squid 是否已成功安装:

squid -v

5.Squid 安装完成后,你需要配置 Squid。Squid 的配置文件位于/etc/squid/squid.conf。你可以使用你的最喜欢的文本编辑器(如 nano, vim 等)打开并编辑这个文件。例如,如果你想使用 nano 编辑器,你可以输入以下命令:

sudo nano /etc/squid/squid.conf

在该文件中,你可以设置你的 Squid 代理服务器的各种参数。例如,你可以设置哪些 IP 地址可以访问你的代理服务器,设置缓存大小等。

为了方便,我直接给出成品,无需做其他配置

sudo rm -rf /etc/squid/squid.conf
sudo nano /etc/squid/squid.conf

然后将下面的内容复制进去

# 设置你的监听端口
http_port 9999

# 设置授权
auth_param basic program /usr/lib/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

# Only allow authenticated users
http_access allow auth_users
# 设置哪些ip段可以使用代理Ip,我设置了全部
acl allowed_ips src 0.0.0.0/0
http_access allow allowed_ips

# Deny all other access to this proxy
http_access deny all
#以下是高匿的设置
request_header_access Via deny all
request_header_access X-Forwarded-For deny all

# Set outgoing IPs 设置你的出口ip
# 这里只是一个示范 我打了注释,看下面文章
#acl ip1 myip 1.1.1.1
#tcp_outgoing_address 1.1.1.1 ip1
#acl ip2 myip 1.1.1.2
#tcp_outgoing_address 1.1.1.2 ip2
# ... repeat for other IPs in the range 1.1.1.1/24

注意,你需要为 IP 段中的每个 IP 单独添加一个 acl 和 tcp_outgoing_address 行。

然后,运行以下命令生成密码文件并创建用户:

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/squid/passwords admin

当系统提示你输入密码时,输入你的密码,输入的时候因为安全,所以不会显示出来

接下来我们添加多ip出口

你可以使用 bash 脚本来自动化添加 tcp_outgoing_address 的过程。以下是一个基本的脚本示例:

#!/bin/bash

# 定义 IP 段的起始和结束地址
start=1
end=254   
ip_base="192.168.1."   #这里需要修改

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

# 循环遍历 IP 段中的每个 IP
for i in $(seq $start $end)
do
    # 构建完整的 IP 地址
    ip="${ip_base}${i}"

    # 构建 acl 和 tcp_outgoing_address 行
    acl_line="acl ip${i} myip ${ip}"
    tcp_line="tcp_outgoing_address ${ip} ip${i}"

    # 将行添加到 Squid 配置文件
    echo $acl_line >> $config_file
    echo $tcp_line >> $config_file
done

该脚本将为 192.168.1.1 到 192.168.1.254 的每个 IP 地址创建一个 acl 和 tcp_outgoing_address 规则。按照你的IP进行修改,请确保你的 Squid 服务器有这些 IP 地址。

在运行此脚本之前,确保你已经备份了你的 Squid 配置文件,以防万一出现任何问题。你也需要根据你的实际需求和环境修改这个脚本。

保存这个脚本到一个文件中,如 add_tcp_outgoing_address.sh,然后通过运行以下命令使其可执行:

chmod +x add_tcp_outgoing_address.sh

然后,你可以运行这个脚本来自动添加 tcp_outgoing_address 规则:

sudo ./add_tcp_outgoing_address.sh

请注意,这个脚本需要 root 权限才能修改 Squid 配置文件并重启 Squid。

sudo systemctl restart squid

 

文章原创内容链接:https://blog.mjjman.com/archives/39

THE END