pfSense 在 WAN 接口添加 HTTP 代理,提升系统更新和插件安装速度

由于 pfSense 的软件仓库在国外,在国内网络环境中,pfSense 经常遇到下载或更新失败的情况。pfSense 自带代理支持,可以让系统更新和软件包下载通过 HTTP 代理进行。

pfSense WebGUI 中的代理支持不是透明代理,也不是局域网全局代理。它主要供系统更新、软件包管理等支持代理的 pfSense 组件使用,不会自动代理ping、普通 Shell 命令、防火墙转发流量、局域网客户端流量、所有由 pfSense 发起的网络连接。

准备代理

本文假设代理信息如下:

代理地址:proxy.example.com
代理端口:8080
用户名:proxyuser

代理必须支持 HTTPS 连接,因为 pfSense 软件仓库使用 HTTPS。

升级前可以进入诊断 → 命令工具,或者通过 SSH 进入 Shell,验证代理端口是否可达:

nc -z -v -w 8 proxy.example.com 8080

配置代理

导航到系统 → 高级选项 → 其他 → 代理支持,输入各项代理参数,如下图所示:

代理地址只填写主机名或 IP,不要附加路径。保存后,代理配置会保存到 /conf/config.xml 。

应用补丁

设置完代理参数后,应该就可以使用代理进行系统更新了,但在 pfSense Plus 26.03 测试环境中,在更新系统时出现了以下了出错提示:

pfSense-repoc-static: failed to fetch the repo data
failed to read the repo data.
failed to update the repository settings!!!

代理服务器、端口和账号均正常,但升级仍然失败。如果碰到这种情况,还需要修改升级脚本生成的认证变量。找到/usr/local/libexec/pfSense-upgrade文件,用文本程序打开并查找:   

 HTTP_PROXY_AUTH="${HTTP_PROXY_USER}:${HTTP_PROXY_PASS}"
 export HTTP_PROXY_AUTH

替换为:       

 HTTP_PROXY_AUTH="basic:*:${HTTP_PROXY_USER}:${HTTP_PROXY_PASS}"
 export HTTP_PROXY_AUTH

并保存。

检查测试

升级开始后,通过另一个 SSH 会话执行:

sockstat -46c | grep -E 'pkg-static|fetch'

如果正在通过代理下载,远端地址应是代理服务器及其端口,例如:proxy.example.com:8080。如果看到 pkg-static 直接连接软件仓库的公网 IP 和 443端口,则说明当前任务没有使用代理。

也可以查看更新进程:

ps auxww | grep -E 'pfSense-upgrade|pkg-static|fetch' | grep -v grep

以及升级日志:

tail -f /cf/conf/upgrade_log.txt

其他问题

pfSense-upgrade属于系统文件,升级后可能被软件包覆盖。每次完成大版本升级后都应检查:

grep -n 'HTTP_PROXY_AUTH=' /usr/local/libexec/pfSense-upgrade

如果官方新版本已经修复,则保留官方实现。如果仍然是旧格式,并且认证代理再次失败,再根据实际版本评估是否重新应用补丁。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇