如何在Ubuntu上设置带密码保护的Elite HTTP Squid代理?

如何在Ubuntu上设置带密码保护的Elite HTTP Squid代理?,ubuntu,proxy,http-proxy,squid,Ubuntu,Proxy,Http Proxy,Squid,我想设置一个Elite HTTP代理。不应向目标地址公开有关源的任何信息。我为此租用了一台Ubuntu虚拟专用服务器。代理应该有密码保护,这样只有我才能使用它。我想用它作为我的代理 实现这一目标的步骤是什么?更新您的APT存储库并安装我们需要的软件 sudo apt-get update sudo apt-get install squid3 sudo apt-get install apache2-utils Squid3是代理软件。需要apache2 utils,我们将使用它作为平面文件密

我想设置一个Elite HTTP代理。不应向目标地址公开有关源的任何信息。我为此租用了一台Ubuntu虚拟专用服务器。代理应该有密码保护,这样只有我才能使用它。我想用它作为我的代理


实现这一目标的步骤是什么?

更新您的APT存储库并安装我们需要的软件

sudo apt-get update
sudo apt-get install squid3
sudo apt-get install apache2-utils
Squid3是代理软件。需要apache2 utils,我们将使用它作为平面文件密码存储来保护代理

设置密码存储

sudo touch /etc/squid/passwords
sudo chmod 777 /etc/squid/passwords
sudo htpasswd -c /etc/squid/passwords USERNAME
[prompt for new password]
/usr/lib/squid3/basic_ncsa_auth /etc/squid/passwords
在上面的几行中,将USERNAME替换为您希望在代理上使用的用户名。执行该行时,系统将提示您输入用户密码

测试密码存储

sudo touch /etc/squid/passwords
sudo chmod 777 /etc/squid/passwords
sudo htpasswd -c /etc/squid/passwords USERNAME
[prompt for new password]
/usr/lib/squid3/basic_ncsa_auth /etc/squid/passwords
在执行这一行之后,控制台看起来像是挂起的,有一个没有任何文本的提示。输入“用户名密码”(将其替换为您的特定用户名和密码)并点击返回。您应该会收到回复“OK”。如果没有,请查看错误消息,您的用户名/密码可能不正确。它的基本身份验证也可能位于不同的路径上(例如lib64)

配置Squid代理

service squid restart
移动默认squid配置文件

sudo mv /etc/squid/squid.conf /etc/squid/squid.conf.original
vi /etc/squid/squid.conf
现在创建一个新的squid配置文件

sudo mv /etc/squid/squid.conf /etc/squid/squid.conf.original
vi /etc/squid/squid.conf
应该是这样的

http_port 3128
dns_v4_first on
cache deny all
forwarded_for delete
tcp_outgoing_address 9.9.9.9   //-- change this ip
via off
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access deny all
以下是每一行的功能说明:

  • http_端口:指定代理侦听端口。这是必需的
  • dns_v4_首次打开:有效地关闭IPv6 dns。如果没有此选项,代理可能会运行得非常慢
  • cache deny all:停止代理缓存页
  • forwarded_for delete:删除forwarded_for http标头,该标头会将源暴露给目标
  • tcp_传出_地址:将其设置为服务器的地址。您可以使用命令“ip a”找到地址
  • via off:删除更多会暴露源代码的标题
  • auth_param:定义您创建的基本身份验证和密码文件的位置。注意:您可能需要检查基本认证的位置
  • acl authenticated:为通过密码存储验证的用户创建访问控制列表
  • http_access allow authenticated:如果用户已通过密码验证,则允许用户访问代理
  • http_访问拒绝所有:如果您未通过密码验证,则不会进入
重新启动squid代理

service squid restart
注意,该服务也可以称为squid3。代理可能需要一段时间才能重新启动。如果愿意,可以使用命令重新加载squid配置

squid -k reconfigure
检查其工作情况

service squid status
服务应该正在运行

netstat -ltnp
您应该看到一个服务正在侦听端口3128,或者您在配置中使用的任何端口

在桌面上,打开firefox,进入选项->网络代理->设置。选择使用手动代理配置。在HTTP代理字段中输入服务器的IP地址,并在端口字段中包含端口。单击“确定”


转到谷歌,在提示时输入用户名和密码,搜索“我的ip地址是什么”,你应该会看到代理服务器的ip

如果您得到“htpasswd:command not found”,那么您需要执行以下“sudo apt get install apache2 utils”
/usr/lib/squid3/basic\u ncsa\u auth:没有回答中提到的文件或目录
,您可能会发现basic\u ncsa\u auth安装在不同的路径上(特别是lib64文件夹)命令'curl ipinfo.io/ip'将显示您的真实ip地址(如果Squid是透明的,则显示Squid客户端的ip地址)。没有搜索“我的ip地址是什么”。遗憾的是,它无法正常工作。