Articles of 鱿鱼

Netfilter:通过VPN代理无效状态

我的盒子A和远程服务器B(都是Debian jessie)之间有一个OpenVPN。 在服务器B上,我也运行Squid3。 然后,我将A浏览器configuration为使用带有B服务器(10.2.0.1:3128)的VPN地址的远程代理服务器,仅用于端口80(无SSL)。 它工作正常,我可以浏览互联网。 我可以通过whatismyip.com看到请求源自公共B服务器地址。 我还在B服务器上有一个防火墙,其规则如下: -A INPUT-m state –state INVALID -j NFLOG –nflog-prefix "fp=bad_packets:1" -A INPUT-m state –state INVALID -j DROP 然后我有时会注意到一些数据包被丢弃了: Jun 12 09:16:20 ks1 fp = bad_packets:1 IN = tun0 OUT = MAC = SRC = 10.2.0.9 DST = 10.2.0.1 LEN = 40 TOS = 00 PREC = 0x00 TTL = […]

通过HTTP透明地caching大文件

我有一个相当特殊的服务器,可以用来处理:我有存储在HTTP可访问的服务器(Windows Azure存储 – 大约800GB内容)的文件,但必须将它们提供给来自不同服务器的人(使用小磁盘 – 40GB) 。 不想增加带宽成本,我想有一些sortingcaching。 鱿鱼可以作为一个转发代理使用,还是可以阻止下载一个完整的(如1GB的文件),然后将其提供给客户端系统? 另外,是否清漆更可行?

鱿鱼反向代理与多个WAN接口

我有以下设置: 两条广域网线路,每条线路都有一个静态的公网IP,都连接到一个单独的路由器,提供两个内部networking(net1和net2) 一个安装了squid 3.3.8(使用–enable-ssl编译)的Ubuntu 14.04 LTS服务器,具有两个接口,位于每个networking中,具有net1作为默认网关 对于位于net1或net2中的某些服务器,squid是反向代理服务器 两个在每个WAN-IP上都有Alogging的子域 两台路由器上端口80和443的端口转发指向了鱿鱼服务器的相应ip 为了更好地理解: sub1.domain.tld–>WAN1–ROUTER1–net1–SERVER1 | SQUID | sub2.domain.tld–>WAN2–ROUTER2–net2–SERVER2 sub1.domain.tld–>WAN1–ROUTER1–net1–SERVER1 | SQUID | sub2.domain.tld–>WAN2–ROUTER2–net2–SERVER2 我的问题: 访问从互联网sub1.domain.tld预期,也出现在access.log 从互联网访问sub2.domain.tld会导致超时,日志中没有任何内容显示 强制sub2.domain.tld到wan1的ip通过主机 – 客户端的文件一切都按预期工作,也出现在access.log 还有从eth0到eth0的切换网关(与各自的网关ip)一切都按预期工作,也出现在access.log中 似乎从鱿鱼返回的数据包总是采取默认路线。 如何解决这个问题,使两个广域网路由工作? 我尝试使用tcp_outgoing_address,但没有成功: tcp_outgoing_address 192.168.1.123 localnet1 tcp_outgoing_address 192.168.2.123 localnet2 同样明确地绑定到具体的IPS并没有帮助: http_port 192.168.1.123:80 accel defaultsite=sub1.domain.tld https_port 192.168.1.123:443 accel cert=/etc/ssl/certs/domain.tld.crt key=/etc/ssl/private/domain.tld.key defaultsite=sub1.domain.tld http_port 192.168.2.123:80 accel defaultsite=sub2.domain.tld https_port 192.168.2.123:443 accel cert=/etc/ssl/certs/domain.tld.crt […]

Ubuntu的路由器/网关上的Squid TPROXY

好吧,所以我有一个Ubuntu的盒子充当我的局域网的路由器/网关; 有3个网卡,2个用于WAN,1个用于本地networking。 它被设置为在需要时在WAN和故障转移之间进行负载平衡。 哦,我不得不join鱿鱼到方程式中。 它目前设置为NATredirecthttp / s端口到squid端口,如下所示: iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3126 iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 443 -j REDIRECT –to-port 3127 我相信它工作正常…但我不想停在那里。 我想尝试TPROXY,但我似乎无法使其工作。 access.log中没有stream量,客户端正在访问网站。 三angular路线是不可能的,我不认为我应该使用桥梁? 所以下面是我的尝试: iptables -t mangle -A PREROUTING -i eth1 -p tcp –dport 80 -j TPROXY […]

我可以使用哪种软件来设置caching时发送文件的反向代理?

我需要build立一个HTTP反向代理,能够caching请求到上游服务器。 上游服务器只提供静态文件。 我面临的问题是,我需要一个能够尽快开始第一个字节的代理(它不能等待整个请求缓冲),而仍然caching。 这是因为我的文件可能相当大(几百兆字节),但应用程序的要求是有快速的响应时间。 我试图使用nginx,但是当我禁用proxy_buffering它停止caching。 有没有广泛可用,经过充分testing的开源项目可以做到这一点? 漆? 乌贼? HAProxy的?

自定义错误页面(deny_info)用于HTTPS

在我的squid.conf文件中有一个名为ERR_TJS的自定义“错误页面”文件,位于“/ usr / share / squid / errors / English”: acl tjs_sites url_regex "/etc/squid/sites_regex.acl" acl tjs_domains dstdomain "/etc/squid/domains.acl" http_access deny tjs_sites http_access deny tjs_domains deny_info ERR_TJS tjs_sites deny_info ERR_TJS tjs_domains 特别是对于ACL文件“/etc/squid/domains.acl”,我有以下域: flyordie.com www.flyordie.com king.com www.king.com miniclip.com www.miniclip.com kongregate.com www.kongregate.com clashroyale.com www.clashroyale.com facebook.com www.facebook.com instagram.com www.instagram.com snapchat.com www.snapchat.com 问题是,当一个HTTPS请求执行到Squid,而不是给“ https://www.facebook.com ”的自定义错误页面,例如,显示一个通用的错误页面浏览器发送,就像这个来自Mozilla Firefox: 代理服务器拒绝连接 Firefox被configuration为使用拒绝连接的代理服务器。 检查代理设置,确保它们是正确的。 联系您的networkingpipe理员,确保代理服务器正在工作。 […]

通配符如何在Squid白名单configuration中工作?

我是一个开发人员,而不是一个系统pipe理员,但我有任务维护一个文件,这基本上是白名单的域列表。 这个文件在Squidcaching代理中使用。 该文件的内容如下所示: .example.com .google.com .bing.com 这个文件是这样使用的: acl whitelist dstdomain "/path/to/squid/whitelist.txt" 现在我正在试图find关于如何parsing这个文件的文档,我无法在Web上find有关如何填充此文件的清除(官方)说明。 看起来,域名前的一个点将域名和所有子域名列入白名单。 我试图找出是否有其他通配符规则,我们可以应用(如谷歌。*或类似的东西)。 我想了解它是如何工作的,而不是盲目追随我们过去如何使用它。

具有上次访问权限的非透明HTTPScaching

我想为下载的文件build立一个caching服务器。 一个麻烦就是我希望它能够与HTTPS一起工作(包括从HTTP到HTTPS的redirect)。 我理解这个问题的常见问题,但是对于我来说,这不是一个透明的代理。 例如: # Usually you'd do something like this: curl –proxy myserver:8080 https://example.com/file.tar.gz # But it's fine for our scripts to call something like this instead: curl myserver:8080 –data-raw https://example.com/file.tar.gz 请注意,这里的客户端是特别指挥其在myserver的请求,所以它不会尝试并validation来自example.com的响应。 (我的服务器应该!) 另一个扭曲是这只会用于永远不会改变的文件(url包括版本号),所以关于caching新鲜度通常的东西不适用。 如果文件(或redirect响应)被caching,则应该返回而不检查互联网。 caching的副本应该在上次请求后的某个固定时间段内被删除,而不pipe第一次下载的时间。 问题:我曾希望使用像Squid这样的HTTP代理,但是我看不到如何configuration它来做这样的事情。 另外,写一些代码是一个选项,但我宁愿避免这一点。 我能做些什么来build立这样的caching? 背景:在构buildDocker镜像和开发人员在容器之外构build时,这主要用于我们在源代码中使用的第三方库。 有时我们目前检查我们自己的回购第三方代码,但这并不理想。 我敢肯定,我们不是唯一面临这个问题的人,但我无法在网上find一个好的解决scheme…也许我只是错过了正确的search词。

IP表拦截exception

我有一组如下所示的iptable规则: -A PREROUTING –jump intercept-nat -A intercept-nat –jump DNAT -s 10.10.1.0/24 ! -d 10.10.1.1/32 -p tcp -m tcp –dport 80 –to-destination 10.10.1.1:3126 -m comment –comment "intercept-nat" -A intercept-nat –jump DNAT -s 10.10.1.0/24 ! -d 10.10.1.1/32 -p tcp -m tcp –dport 443 –to-destination 10.10.1.1:3127 -m comment –comment "intercept-nat" -A intercept-nat –jump DNAT -s 10.1.2.0/24 ! -d […]

根据关键字阻止

海linux的家伙, 我正在使用Linux(RHEL5)服务器。 我想阻止一些网站的Windows客户端, 如何根据RHEL 5中的关键字(文本文件中的关键字)阻止不需要的网站? 有没有包的任何build立这样做? 是否有可能基于代理(鱿鱼)阻塞? 如果可能的话,我想为此做些什么?