🔗 Squid on OpenBSD
🔗 预编译的二进制包
Squid 可在 OpenBSD 的软件包中找到。您可以选择标准构建,或者带 Kerberos 的构建(OpenBSD 使用 Heimdal)。
# pkg_add squid
Ambiguous: choose package for squid
a 0: <None>
1: squid-5.5
2: squid-5.5-krb5
Your choice: 1
squid-5.5: ok
The following new rcscripts were installed: /etc/rc.d/squid
See rcctl(8) for details.
New and changed readme(s):
/usr/local/share/doc/pkg-readmes/squid
# vi /etc/squid/squid.conf
##...to start at boot:
# rcctl enable squid
##...to start immediately:
# rcctl start squid
LDAP 认证/ACL 模块是分开打包的,可以使用“pkg_add squid-ldap”进行安装。msktutil 也可在软件包中找到,对于希望通过 Kerberos 与 Microsoft 认证集成的用户可能会有帮助。
如果使用 Squid 作为 拦截代理,请注意,软件包是使用 –enable-ipfw-transparent 构建的,这是 OpenBSD 上的首选方法。在 PF 中使用“divert-to”规则进行此操作。
OpenBSD 版本大约每 6 个月发布一次。通常软件包只在“-current”(开发快照)中更新,但有时也会将更新反向移植到最新发布的“-stable”分支(没有 LTS 版本;OpenBSD 版本仅支持 6 个月);如果新版本可用,请运行“pkg_add -u”进行更新,然后运行“rcctl restart squid”重新启动。
🔗 从 ports 构建
如果您需要添加补丁或修改构建,请遵循 ports FAQ 签出 ports 树,然后执行以下命令即可从 ports 构建 Squid、创建软件包并进行安装。
cd /usr/ports/www/squid
make clean=all
make # can be omitted; install depends on this anyway
make package # can be omitted; install depends on this anyway
make install
编译器标志可以在 make 命令行的使用。调试构建可以通过传递 DEBUG 变量中的标志来完成;设置此项也会禁用剥离。例如:
make CXXFLAGS="-O3"
make DEBUG="-O0 -g"
大多数 CPU 架构上的标准编译器是 clang,少数仍在使用 GCC。如果您需要在 clang 架构上使用 GCC 从 ports 构建进行测试,请将 ports Makefile 中的 COMPILER 行更改为“COMPILER=ports-gcc”。基础操作系统中的 gdb 是过时的 GPLv2 版本,无法很好地处理现代编译器;请使用“pkg_add gdb”从 ports 安装更新的版本,并使用“egdb”二进制文件。lldb 也可用,但截至撰写本文时,在 OpenBSD 中的使用仍处于早期阶段。
🔗 在 ports 之外编译
要为标准使用编译 squid,不需要特殊方法。有关详细说明,请参阅 编译 Squid。
以下内容可能已过时:如果您计划对 squid 进行开发,需要一些注意事项:显然,在源代码和库的混合中,在编译测试套件的某些部分时,会触发 gcc 的一个 bug(在使用优化时)。通过明确关闭优化来构建可以正常编译。换句话说,您需要
CFLAGS='-O0 -Wall -g' CXXFLAGS="$CFLAGS" ./test-builds.sh
旧的 –enable-pf-transparent 方法仍然可用,但不推荐使用。如果您出于某种原因确实使用此方法,请注意,运行 Squid 的用户 ID 需要对 /dev/pf 具有*写*访问权限才能调用 ioctl() 来进行 NAT 查找。对于此方法,请使用“rdr-to”PF 规则将流量传递给 squid。
类别: 知识库
导航: 站点搜索、站点页面、类别、🔼 向上