Squid代理服务器能否支持不同用户绑定不同网卡?
我使用了basic_ncsa_auth进行用户身份验证,我的需求是实现不同用户使用不同的网卡出口IP访问目标站点,我在vmware虚拟机环境下部署Squid 6.6版本,vmware上配置了两块网卡:10网段,20网段。vmware虚拟机运行ip addr后本机ip是:192.168.10.100
我的思路如下:
1,用户user1代理使用10网段出口IP(102.168.10.xxx),user2用户访问代理使用20网段出口ip(192.168.20.xxx)。
我在Windows使用cmd运行:curl -x user2:user2@192.168.10.101:3128 http://www.baidu.com,我的目的是这个出口IP需要变更为20网段,但是Squid日志出口ip仍然是10网段,必须要把@后面的ip修改为20网段才可以实现,但是这样就无意义了?我的测试失败。
2,思路二,通过设置不同端口,实现不同出口ip。比如访问192.168.10.101:1111,出口ip是10网段的网卡1,访问192.168.10.101:2222,出口ip是20网段的网卡2
我的思路以上两个,哪一个通过修改Squid.conf更容易实现,但是我测试下来没有任何效果!
我参考的是这篇文档:http://www.junww.com/server/2017/0214/218.html
思路二:基于不同端口的出口IP绑定
这种方法通过不同端口来实现不同的出口IP,理论上更容易实现。可以在Squid配置文件中设置不同的监听端口,并为每个端口指定不同的出口IP:
tcp_outgoing_address
选项进行网络配置根据用户 IP 地址或其他标识符创建 ACL。
tcp_outgoing_address
为每个 ACL 指定不同的出口 IP。
# 定义访问控制列表
acl user1 src 192.168.1.0/24
acl user2 src 192.168.2.0/24
# 为每个用户指定不同的出口 IP
tcp_outgoing_address 10.0.0.1 user1
tcp_outgoing_address 10.0.0.2 user2
在这个示例中,来自 192.168.1.0/24
网段的请求将通过 10.0.0.1
出口 IP 访问目标网站,而来自 192.168.2.0/24
网段的请求将通过 10.0.0.2
出口 IP 访问目标网站。
你可以根据实际需求调整 ACL 和出口 IP 的配置。如果有更多的用户或网卡,可以继续添加相应的 ACL 和 tcp_outgoing_address
规则。
Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。 Squid的发展历史相当
Squid Analyzer 解析 Squid 代理服务器的日志并生成了关于点击、流量、用户和网络、URL等信息的统计报表,面向访客和带宽控制。
flying-squid Create Minecraft servers with a powerful, stable, and high level JavaScript API. Features Support for Minecraft 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15 and 1.16 Players can see the w
GAdmin-ProFTPD是一个基于GTK的可视化squid管理工具。 更多的屏幕截图请看:http://mange.dynalias.org/linux/gadmin-squid/screenshots/
我正在使用selenium webdriver使用test ng Framework自动化测试。这里尝试实现POI和工厂设计模式。基本上,我在两个网站(GUI界面不同)上进行测试,这两个网站都有登录页面、登录名、密码和登录按钮,但最具挑战性的是,两个网站上的网站ID都不一样。如何编写一个通用的方法呢? 对于定位器,我有一个an enum类,在这个类中,我获取每个值的实例并在方法中调用它。
让我们假设一个后端应用程序,它公开了一些Rest API,运行在地址192.168.1.10:8889的Jetty网络服务器上。 我希望有一个前端应用程序(仅限于html/javascript,在apache2 Web服务器上)在相同的IP上运行,但在不同的端口(例如8000)上运行,它应该使用后端应用程序公开的API。 我怎样才能让这个架构工作而不进入“No'Access-Control-All
我是Spark和Scala的新手。我正在阅读火花的独特()功能。但是我找不到任何合适的细节。我有几个无法解决的疑问,并把它们写了下来。 > 在 Spark 中实现的 () 有多独特? 我不太擅长Spark源代码,无法识别整个流程。当我检查执行计划时,我只能看到一个SchffleRDD 什么是不同的时间复杂度? 我还从谷歌搜索中发现,它也以某种方式使用哈希和排序。 所以,我想它是否使用了与借助Has
我被要求支持2个URL,以便JMX访问我们的服务器: 一个安全的(服务:jmx:rmi://localhost/jndi/rmi://localhost:2020/jmxrmi)不安全:(服务:jmx:rmi://localhost/jndi/rmi://localhost:2020/insecure-jmxrmi) 不安全的主要用于演示目的-不,它不会在生产过程中使用。 我可以为 /jmxrmi