Skip to content
This repository has been archived by the owner on Mar 17, 2024. It is now read-only.

[Feature Request] nginx通过UDS转发时的@问题 #191

Closed
SakuraSakuraSakuraChan opened this issue Dec 7, 2022 · 5 comments
Closed

[Feature Request] nginx通过UDS转发时的@问题 #191

SakuraSakuraSakuraChan opened this issue Dec 7, 2022 · 5 comments

Comments

@SakuraSakuraSakuraChan
Copy link

【说一下 你的新功能请求是否和一个问题相关】
#162

【具体描述一下你想要的新功能,或者你的新想法】
使用nginx+UDS时,传入日志是 New Accepted Conn {"connid": 840968, "from": "@", 这样的格式,在上面的issue里e佬说这个没啥问题,但是我试了下xray(相同配置,接收方从VS变成xray),发现显示的是源IP,也就是通过UDS工作时X-Forward-For功能可以正常传递IP信息,因此希望能给VS也安排上~

@e1732a364fed
Copy link
Owner

嗯。

@e1732a364fed
Copy link
Owner

e1732a364fed commented Dec 13, 2022

我看了,vs有相关的代码啊,在 advLayer/ws/server.go 第 198行

为什么没有读到呢

啊,因为不是ws.. 。 不对,你是不是ws啊?配置说清楚些

@e1732a364fed e1732a364fed added bug Something isn't working and removed feature request labels Dec 13, 2022
@SakuraSakuraSakuraChan
Copy link
Author

SakuraSakuraSakuraChan commented Dec 13, 2022

是的,就是 #162 里的配置

@e1732a364fed e1732a364fed removed the bug Something isn't working label Dec 13, 2022
@e1732a364fed
Copy link
Owner

我仔细看了一下。这个改不了。
因为vs和xray的打印日志的逻辑不一样;

vs是先在最开始接收到数据时,就打印New Accept Conn,此时 我们还没开始解析http头部分呢!所以根本没到达 X-forward-for 的解析环节!

@e1732a364fed
Copy link
Owner

e1732a364fed commented Dec 13, 2022

不过应该可以做如下变通:

  1. 检测是否为unix,如果是,则直接打印该unix的文件名
  2. 在X-forwared-for解析之后,再打印一次日志输出,告诉用户vs知道的更多了。

目前先使用第一种变通。

第二种变通需要下面:
有一个小的架构优化需要做,给advancedLayer传递一个环境变量,这样能让高级层打印输出时也带connid,这样就可以在解析完X-forwarded-for 后马上输出一个日志,就更清晰了。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants