armok. 发表于 2020-6-17 16:43:17

论坛有Linux高手吗?我们需要在FreeBSD上安装腾讯的TOA模块,但没有对应的版本

这个是腾讯的TOA模块的安装教程

https://cloud.tencent.com/document/product/608/18945

我们的版本是FreeBSD。上面没有Freebsd的版本。

文档里提到有通用版本,但我们的技术人员看了一下代码,说FreeBSD里没有这些库,根本无法编译。

用不了,freebsd中没有这些文件

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/err.h>
#include <linux/time.h>
#include <linux/skbuff.h>
#include <net/tcp.h>
#include <net/inet_common.h>
#include <asm/uaccess.h>
#include <linux/netdevice.h>
#include <net/net_namespace.h>
#include <linux/fs.h>
#include <linux/sysctl.h>
#include <linux/proc_fs.h>
#include <linux/kallsyms.h>
#include <net/ipv6.h>
#include <net/transp_v6.h>

笑笑我笑了 发表于 2020-6-17 16:50:27

freebsd 和 linux 内核不一样,没用的。

abutter 发表于 2020-6-17 16:56:15

内核模块,跟内核绑定很严重。

Himem 发表于 2020-6-17 17:22:18

本帖最后由 Himem 于 2020-6-17 17:27 编辑

一般cdn都会将请求头中加入X-Forwarded-For头来标明真实来源IP吧,nginx装了realip模块就可以了,可以php先创建个phpinfo()看下请求是否有这个头

不过如果纯是tcp中转(cdn配置时没有要ssl私钥),没有修改请求内容,那可能确实要这个TOA模块了

dreampet 发表于 2020-6-17 17:23:22

FreeeBSD 和Linux 是类Unix 系统,不通用,如要编译,需要自行适配,需要很熟悉网络驱动的人才行

Himem 发表于 2020-6-17 17:27:01

本帖最后由 Himem 于 2020-6-17 17:44 编辑

Himem 发表于 2020-6-17 17:22
一般cdn都会将请求头中加入X-Forwarded-For头来标明真实来源IP吧,nginx装了realip模块就可以了,可以先创 ...

看它的文档是将tcp头中加入了额外字段表示客户端IP端口二元组,
那可以后台写个抓包,提取记录cdn二元组与真实二元组的映射,
php里用真实ip时拿当前获得的cdn二元组去前面找记录(或做成nginx模块)

虽然效率不佳

jenkins 发表于 2020-6-17 17:31:57

你们使用FreeBSD是哪个版本啊?

atommann 发表于 2020-6-17 18:40:09

记得 FreeBSD 有个二进制兼容功能,可以直接运行 Linux 里的应用。

armok. 发表于 2020-6-17 20:26:07

Himem 发表于 2020-6-17 17:22
一般cdn都会将请求头中加入X-Forwarded-For头来标明真实来源IP吧,nginx装了realip模块就可以了,可以php先 ...

不是使用nginx。

armok. 发表于 2020-6-17 20:26:39

jenkins 发表于 2020-6-17 17:31
你们使用FreeBSD是哪个版本啊?

11

armok. 发表于 2020-6-17 20:28:40

atommann 发表于 2020-6-17 18:40
记得 FreeBSD 有个二进制兼容功能,可以直接运行 Linux 里的应用。

你有超过3个精华帖子,帮你将VIP免费升级到VIP++。

Himem 发表于 2020-6-18 05:34:30

本帖最后由 Himem 于 2020-6-18 05:43 编辑

armok. 发表于 2020-6-17 20:26
不是使用nginx。

freebsd内核和linux内核 协议栈实现有一定差异 修改的工作量应该会大于重新实现了

那再开一台虚拟机或物理机装TOA模块的linux,用于接管外部请求,
虚拟机里装nginx,配置proxy_pass反代到原freebsd系统,proxy_set_header的Client-IP头或XFF挂上源IP,
discuz是默认优先识别XFF/Client-IP头中的IP,配置不需要修改

不迁移的话,应该是工作量最小的方案,可以作为过渡

loopback 发表于 2020-6-22 15:44:15

BSD和linux实现方式不同
如果要从机理上做兼容
不好干啊
光那些PF的规则就要折腾https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

lee4diy 发表于 2020-6-22 17:27:44

用个docker跑这个不就行了

gzhuli 发表于 2020-6-22 17:54:57

这是Linux内核模块,FreeBSD内核和Linux完全没有交集,只能找同时精通Linux和FreeBSD内核的高手移植才行。
页: [1]
查看完整版本: 论坛有Linux高手吗?我们需要在FreeBSD上安装腾讯的TOA模块,但没有对应的版本