是的。查看原始的squid.conf文件,并查看 Squid 文档,网址为 http://www.squid-cache.org
这很简单。创建一个名为.wgetrc的文件,并将其放在您的主目录中。在其中插入以下行,就可以了!
HTTP_PROXY=192.168.1.1:8080 FTP_PROXY=192.168.1.1:8080 |
您可以使其对所有用户全局生效,输入man wget来学习如何操作。
这里可能有两个问题。
一是当您的 SOCKS 代理是开放中继时,这意味着世界上任何地方的每个人都可以使用它。这是一个安全问题,您应该再次检查您的 SOCKS 代理配置 - 通常 irc 服务器不允许开放中继 SOCKS 服务器连接到它们。
如果您确定您的 SOCKS 服务器不是开放中继,您可能仍然被禁止连接到某些 irc 服务器 - 这是因为它们大多只是检查 SOCKS 服务器是否在连接客户端的端口 1080 上运行。在这种情况下,只需重新配置您的 SOCKS 以在不同的端口上工作。您还需要重新配置您的 LAN 软件以使用正确的 SOCKS 服务器和端口。
的确,这可能很痛苦,但很容易解决。
创建一个文件,例如/etc/sysconfig/cbq/cbq-15.ppp.
将以下行插入其中,Kazaa 或 Audiogalaxy 的上传速度将不超过大约 15 kbits/s。我假设您的传出互联网接口是 ppp0。
DEVICE=ppp0,115Kbit,11Kbit RATE=15Kbit WEIGHT=2Kbit PRIO=5 TIME=01:00-07:59;110Kbit/11Kbit RULE=,:21 RULE=,213.25.25.101 RULE=,:1214 RULE=,:41000 RULE=,:41001 #And so on till :41030 RULE=,:41030 |
您可以以类似于上述问题的方式限制您的 SMTP、Postfix、Sendmail 或任何其他服务器。只需更改或添加一条规则
RULE=,:25 |
此外,如果您有一个 SMTP 服务器,您可以强制您的本地 LAN 用户使用它,即使他们已经设置了自己的 SMTP 服务器为 smtp.some.server!我们将以之前对 Squid 所做的透明方式来做到这一点。
一般来说,您可以,但通常这些服务器都有自己的带宽限制配置,因此您可能需要查看它们的文档。
2.2.x 内核
/sbin/ipchains -A input -s 192.168.1.1/24 -d ! 192.168.1.1 25 -p TCP -j REDIRECT 25
2.4.x 内核
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 25
不要忘记在您的初始化脚本中添加适当的行。
是的。查看此脚本内部;那里有一些示例。
可能您的系统中没有将 CBQ 作为模块。如果您已将 CBQ 编译到您的内核中,请注释掉您的cbq.init-v0.6.2脚本中的以下行。
### If you have cbq, tbf and u32 compiled into kernel, comment it out #for module in sch_cbq sch_tbf sch_sfq sch_prio cls_u32; do # if ! modprobe $module; then # echo "**CBQ: could not load module $module" # exit # fi #done |
一般来说,不应该发生这种情况。有时,您可能会观察到大规模下载,尽管您认为您已阻止了 Napster 或 Audiogalaxy 使用的所有端口。好吧,总会有一个端口为大规模下载打开。要找到它,您可以使用 IPTraf。由于可能存在数千个这样的端口,这对于您来说可能是一项非常艰巨的任务。为了让事情变得更容易,您可以考虑运行自己的 SOCKS 代理 - Napster、Audiogalaxy 和许多程序都可以使用 SOCKS 代理,因此处理一个端口比处理数千个可能性(标准 SOCKS 端口是 1080,如果您运行自己的 SOCKS 代理服务器,您将能够将其设置为不同的端口,或运行监听不同端口的多个 SOCKS 代理实例)要容易得多。不要忘记关闭所有流量端口,并保留像 25 和 110(SMTP 和 POP3)以及您认为可能有用的其他端口等开放端口。您将在本 HOWTO 的末尾找到指向优秀的 Nylon socks 代理服务器的链接。
不幸的是,您对此无能为力。
您唯一可以做的是使用 cron 并在例如凌晨 1:00 重新配置它,以便 Squid 不会使用延迟池,然后在例如早上 7:30 再次重新配置它,以使用延迟池。
为此,创建两个单独的配置文件,例如名为squid.conf-day和squid.conf-night,并将它们放入/opt/squid/etc/.
squid.conf-day将是我们之前创建的配置的精确副本
squid.conf-night,相反,不会有任何延迟池行,因此您要做的就是注释掉它们。
接下来您必须做的是设置/etc/crontab条目正确。
编辑/etc/crontab并在那里放入以下行
#SQUID - night and day config change 01 9 * * * root /bin/cp -f /opt/squid/etc/squid.conf-day /opt/squid/etc/squid.conf; /opt/squid/bin/squid -k reconfigure 59 23 * * * root /bin/cp -f /opt/squid/etc/squid.conf-night /opt/squid/etc/squid.conf; /opt/squid/bin/squid -k reconfigure |
您可以通过从您的 squid.conf 中删除该 acl,以及“delay_access 2 allow dzien delay_access 2 deny !dzien”来实现。
然后尝试像上面问题中那样使用 cron 来完成它。
的确,您拥有的用户越多,记录的信息就越多 - 有时很有用。
消除它的最佳方法是使用 logrotate,但您必须做一点技巧才能使其与 Squid 一起工作:正确的 cron 和 logrotate 条目。
/etc/crontab条目
#SQUID - logrotate 01 4 * * * root /opt/squid/bin/squid -k rotate; /usr/sbin/logrotate /etc/logrotate.conf; /bin/rm -f /var/log/squid/*.log.0 |
在这里,我们使 logrotate 在每天凌晨 04:01 开始,因此删除任何剩余的 logrotate 起始点,例如从/etc/cron.daily/.
/etc/logrotate.d/syslog条目
#SQUID logrotate - will keep logs for 40 days /var/log/squid/*.log.0 { rotate 40 compress daily postrotate /usr/bin/killall -HUP syslogd endscript } |
您真幸运,这是可能的!
有两种方法可以实现它。
第一种是简单的一种,类似于我们使用 Squid 制作的解决方案。在您的 CBQ 配置文件中插入类似于下面一行的行,这些文件位于/etc/sysconfig/cbq/:
TIME=00:00-07:59;110Kbit/11Kbit |
您可以在 CBQ 配置文件中设置多个 TIME 参数。
但请注意,因为cbq.init-v0.6.2脚本中存在一个小错误 - 它不允许您设置某些时间,例如 00:00-08:00!为了确保一切正常工作,启动cbq.init-v0.6.2,然后在您设置的时间内,输入
/etc/rc.d/cbq.init-v0.6.2 timecheck
这是正确输出应有的示例
[root@mangoo rc.d]# ./cbq.init start; ./cbq.init timecheck **CBQ: 3:44: eth0 上的 class 10 更改了速率 (20Kbit -> 110Kbit) **CBQ: 3:44: ppp0 上的 class 40 更改了速率 (15Kbit -> 110Kbit) **CBQ: 3:44: eth0 上的 class 50 更改了速率 (35Kbit -> 110Kbit)
在这个例子中,有些地方出错了,可能是在位于/etc/sysconfig/cbq/; 从其名称中最低的数字开始数的第二个配置文件中
[root@mangoo rc.d]# ./cbq.init start; ./cbq.init timecheck **CBQ: 3:54: eth0 上的 class 10 更改了速率 (20Kbit -> 110Kbit) ./cbq.init: 08: 值对于基数来说太大了 (错误标记是 "08")
使 CBQ 更智能的第二种方法更难 - 它不依赖于时间。您可以在 Linux 2.4 高级路由 HOWTO 中阅读有关它的信息,并使用tc命令。