GithubHelp home page GithubHelp logo

invalid request user id about xrayr HOT 34 CLOSED

wyx2685 avatar wyx2685 commented on August 30, 2024
invalid request user id

from xrayr.

Comments (34)

wyx2685 avatar wyx2685 commented on August 30, 2024

@MrVb0 you should take a screen shot of ur config that will be fast solve, remember keep your ip/domain secret

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

reality e.g :

Log:
  Level: warning # Log level: none, error, warning, info, debug 
  AccessPath: # /etc/XrayR/access.Log
  ErrorPath: # /etc/XrayR/error.log
DnsConfigPath: # /etc/XrayR/dns.json # Path to dns config, check https://xtls.github.io/config/dns.html for help
RouteConfigPath: /etc/XrayR/route.json # Path to route config, check https://xtls.github.io/config/routing.html for help
InboundConfigPath: # /etc/XrayR/custom_inbound.json # Path to custom inbound config, check https://xtls.github.io/config/inbound.html for help
OutboundConfigPath: /etc/XrayR/custom_outbound.json # Path to custom outbound config, check https://xtls.github.io/config/outbound.html for help
ConnectionConfig:
  Handshake: 4 # Handshake time limit, Second
  ConnIdle: 30 # Connection idle time limit, Second
  UplinkOnly: 2 # Time limit when the connection downstream is closed, Second
  DownlinkOnly: 4 # Time limit when the connection is closed after the uplink is closed, Second
  BufferSize: 64 # The internal cache size of each connection, kB
Nodes:
  - PanelType: "NewV2board" # Panel type: SSpanel, NewV2board, PMpanel, Proxypanel, V2RaySocks, GoV2Panel
    ApiConfig:
      ApiHost: "domain"
      ApiKey: "api"
      NodeID: id
      NodeType: V2ray # Node type: V2ray, Shadowsocks, Trojan, Shadowsocks-Plugin
      Timeout: 30 # Timeout for the api request
      EnableVless: true # Enable Vless for V2ray Type
      VlessFlow: "xtls-rprx-vision" # Only support vless
      SpeedLimit: 100 # Mbps, Local settings will replace remote settings, 0 means disable
      DeviceLimit: 2 # Local settings will replace remote settings, 0 means disable
      RuleListPath: # /etc/XrayR/rulelist Path to local rulelist file
    ControllerConfig:
      ListenIP: **my ip / or / 0.0.0.0** # IP address you want to listen
      SendIP: 0.0.0.0 # IP address you want to send pacakage
      UpdatePeriodic: 60 # Time to update the nodeinfo, how many sec.
      DeviceOnlineMinTraffic: 1000 # V2board面板设备数限制统计阈值,大于此流量时上报设备数在线,单位kB,不填则默认上报
      EnableDNS: false # Use custom DNS config, Please ensure that you set the dns.json well
      DNSType: AsIs # AsIs, UseIP, UseIPv4, UseIPv6, DNS strategy
      EnableProxyProtocol: false # Only works for WebSocket and TCP
      AutoSpeedLimitConfig:
        Limit: 0 # Warned speed. Set to 0 to disable AutoSpeedLimit (mbps)
        WarnTimes: 0 # After (WarnTimes) consecutive warnings, the user will be limited. Set to 0 to punish overspeed user immediately.
        LimitSpeed: 0 # The speedlimit of a limited user (unit: mbps)
        LimitDuration: 0 # How many minutes will the limiting last (unit: minute)
      GlobalDeviceLimitConfig:
        Enable: true # Enable the global device limit of a user
        RedisAddr: ip:port # The redis server address
        RedisPassword: pass # Redis password
        RedisDB: 0 # Redis DB
        Timeout: 5 # Timeout for redis request
        Expiry: 60 # Expiry time (second)
      EnableFallback: false # Only support for Trojan and Vless
      FallBackConfigs:  # Support multiple fallbacks
        - SNI: # TLS SNI(Server Name Indication), Empty for any
          Alpn: # Alpn, Empty for any
          Path: # HTTP PATH, Empty for any
          Dest: 80 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
          ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for disable
      EnableREALITY: true # 是否开启 REALITY
      DisableLocalREALITYConfig: false  # 是否忽略本地 REALITY 配置
      REALITYConfigs: # 本地 REALITY 配置
        Show: false # Show REALITY debug
        Dest: dest:port # Required, Same as fallback
        ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for disable
        ServerNames: # Required, list of available serverNames for the client, * wildcard is not supported at the moment.
          - sni1
          - sni2
          - ...
        PrivateKey: UrlCH_oYvFKUZNyayeCba0hRq8EgcNOkhXd0rW4ZEdY # 可不填
        MinClientVer: # Optional, minimum version of Xray client, format is x.y.z.
        MaxClientVer: # Optional, maximum version of Xray client, format is x.y.z.
        MaxTimeDiff: 0 # Optional, maximum allowed time difference, unit is in milliseconds.
        ShortIds: # 可不填
          - ""
          - "shortid"
      CertConfig:
        CertMode: none # Option about how to get certificate: none, file, http, tls, dns. Choose "none" will forcedly disable the tls config.
        CertDomain: "node1.test.com" # Domain to cert
        CertFile: /etc/XrayR/cert/node1.test.com.cert # Provided if the CertMode is file
        KeyFile: /etc/XrayR/cert/node1.test.com.key
        Provider: alidns # DNS cert provider, Get the full support list here: https://go-acme.github.io/lego/dns/
        Email: [email protected]
        DNSEnv: # DNS ENV option used by DNS provider
          ALICLOUD_ACCESS_KEY: aaa
          ALICLOUD_SECRET_KEY: bbb

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

vless ws tls e.g :

Log:
  Level: warning # Log level: none, error, warning, info, debug 
  AccessPath: # /etc/XrayR/access.Log
  ErrorPath: # /etc/XrayR/error.log
DnsConfigPath: # /etc/XrayR/dns.json # Path to dns config, check https://xtls.github.io/config/dns.html for help
RouteConfigPath: /etc/XrayR/route.json # Path to route config, check https://xtls.github.io/config/routing.html for help
InboundConfigPath: # /etc/XrayR/custom_inbound.json # Path to custom inbound config, check https://xtls.github.io/config/inbound.html for help
OutboundConfigPath: /etc/XrayR/custom_outbound.json # Path to custom outbound config, check https://xtls.github.io/config/outbound.html for help
ConnectionConfig:
  Handshake: 4 # Handshake time limit, Second
  ConnIdle: 30 # Connection idle time limit, Second
  UplinkOnly: 2 # Time limit when the connection downstream is closed, Second
  DownlinkOnly: 4 # Time limit when the connection is closed after the uplink is closed, Second
  BufferSize: 64 # The internal cache size of each connection, kB
Nodes:
  - PanelType: "NewV2board" # Panel type: SSpanel, NewV2board, PMpanel, Proxypanel, V2RaySocks, GoV2Panel
    ApiConfig:
      ApiHost: "domian"
      ApiKey: "api"
      NodeID: id1
      NodeType: V2ray # Node type: V2ray, Shadowsocks, Trojan, Shadowsocks-Plugin
      Timeout: 30 # Timeout for the api request
      EnableVless: true # Enable Vless for V2ray Type
      VlessFlow: "" # Only support vless
      SpeedLimit: 100 # Mbps, Local settings will replace remote settings, 0 means disable
      DeviceLimit: 2 # Local settings will replace remote settings, 0 means disable
      RuleListPath: # /etc/XrayR/rulelist Path to local rulelist file
    ControllerConfig:
      ListenIP: 0.0.0.0 # IP address you want to listen
      SendIP: 0.0.0.0 # IP address you want to send pacakage
      UpdatePeriodic: 60 # Time to update the nodeinfo, how many sec.
      EnableDNS: false # Use custom DNS config, Please ensure that you set the dns.json well
      DNSType: AsIs # AsIs, UseIP, UseIPv4, UseIPv6, DNS strategy
      EnableProxyProtocol: false # Only works for WebSocket and TCP
      AutoSpeedLimitConfig:
        Limit: 0 # Warned speed. Set to 0 to disable AutoSpeedLimit (mbps)
        WarnTimes: 0 # After (WarnTimes) consecutive warnings, the user will be limited. Set to 0 to punish overspeed user immediately.
        LimitSpeed: 0 # The speedlimit of a limited user (unit: mbps)
        LimitDuration: 0 # How many minutes will the limiting last (unit: minute)
      GlobalDeviceLimitConfig:
        Enable: true # Enable the global device limit of a user
        RedisAddr: ip:port # The redis server address
        RedisPassword: pass # Redis password
        RedisDB: 0 # Redis DB
        Timeout: 5 # Timeout for redis request
        Expiry: 60 # Expiry time (second)
      EnableFallback: true # Only support for Trojan and Vless
      FallBackConfigs:  # Support multiple fallbacks
        - SNI: # TLS SNI(Server Name Indication), Empty for any
          Alpn: # Alpn, Empty for any
          Path: # HTTP PATH, Empty for any
          Dest: 80 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
          ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for disable
        - SNI: # TLS SNI(Server Name Indication), Empty for any
          Alpn: # Alpn, Empty for any
          Path: /chat # HTTP PATH, Empty for any
          Dest: 1234 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
          ProxyProtocolVer: 1 # Send PROXY protocol version, 0 for disable
        - SNI: # TLS SNI(Server Name Indication), Empty for any
          Alpn: # Alpn, Empty for any
          Path: /echo # HTTP PATH, Empty for any
          Dest: 2345 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
          ProxyProtocolVer: 1 # Send PROXY protocol version, 0 for disable
        - SNI: # TLS SNI(Server Name Indication), Empty for any
          Alpn: # Alpn, Empty for any
          Path: # HTTP PATH, Empty for any
          Dest: 8001 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
          ProxyProtocolVer: 1 # Send PROXY protocol version, 0 for disable
        - SNI: # TLS SNI(Server Name Indication), Empty for any
          Alpn: h2 # Alpn, Empty for any
          Path: # HTTP PATH, Empty for any
          Dest: 8002 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
          ProxyProtocolVer: 1 # Send PROXY protocol version, 0 for disable
      EnableREALITY: false # 是否开启 REALITY
      DisableLocalREALITYConfig: false  # 是否忽略本地 REALITY 配置
      REALITYConfigs: # 本地 REALITY 配置
        Show: false # Show REALITY debug
        Dest: m.media-amazon.com:443 # REALITY 目标地址
        ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for disable
        ServerNames: # Required, list of available serverNames for the client, * wildcard is not supported at the moment.
          - m.media-amazon.com
        PrivateKey: # 可不填
        MinClientVer: # Optional, minimum version of Xray client, format is x.y.z.
        MaxClientVer: # Optional, maximum version of Xray client, format is x.y.z.
        MaxTimeDiff: 0 # Optional, maximum allowed time difference, unit is in milliseconds.
        ShortIds: # 可不填
          - ""
      CertConfig:
        CertMode: file # Option about how to get certificate: none, file, http, tls, dns. Choose "none" will forcedly disable the tls config.
        CertDomain: "domain" # Domain to cert
        CertFile: /etc/XrayR/cert/domain/fullchain.pem # Provided if the CertMode is file
        KeyFile: /etc/XrayR/cert/domain/privkey.pem
        Provider: arvancloud # DNS cert provider, Get the full support list here: https://go-acme.github.io/lego/dns/
        Email: **
        DNSEnv: # DNS ENV option used by DNS provider
          ARVANCLOUD_API_KEY: **
  - PanelType: "NewV2board" # Panel type: SSpanel, NewV2board, PMpanel, Proxypanel, V2RaySocks, GoV2Panel
    ApiConfig:
      ApiHost: "domain"
      ApiKey: "api"
      NodeID: id2(ws)
      NodeType: V2ray # Node type: V2ray, Shadowsocks, Trojan, Shadowsocks-Plugin
      Timeout: 30 # Timeout for the api request
      EnableVless: true # Enable Vless for V2ray Type
      VlessFlow: "" # Only support vless
      SpeedLimit: 100 # Mbps, Local settings will replace remote settings, 0 means disable
      DeviceLimit: 2 # Local settings will replace remote settings, 0 means disable
      RuleListPath: # /etc/XrayR/rulelist Path to local rulelist file
    ControllerConfig:
      ListenIP: 127.0.0.1 # IP address you want to listen
      SendIP: 0.0.0.0 # IP address you want to send pacakage
      UpdatePeriodic: 60 # Time to update the nodeinfo, how many sec.
      DeviceOnlineMinTraffic: 1000 # V2board面板设备数限制统计阈值,大于此流量时上报设备数在线,单位kB,不填则默认上报
      EnableDNS: false # Use custom DNS config, Please ensure that you set the dns.json well
      DNSType: AsIs # AsIs, UseIP, UseIPv4, UseIPv6, DNS strategy
      EnableProxyProtocol: true # Only works for WebSocket and TCP
      AutoSpeedLimitConfig:
        Limit: 0 # Warned speed. Set to 0 to disable AutoSpeedLimit (mbps)
        WarnTimes: 0 # After (WarnTimes) consecutive warnings, the user will be limited. Set to 0 to punish overspeed user immediately.
        LimitSpeed: 0 # The speedlimit of a limited user (unit: mbps)
        LimitDuration: 0 # How many minutes will the limiting last (unit: minute)
      GlobalDeviceLimitConfig:
        Enable: true # Enable the global device limit of a user
        RedisAddr: ip:port # The redis server address
        RedisPassword: pass # Redis password
        RedisDB: 0 # Redis DB
        Timeout: 5 # Timeout for redis request
        Expiry: 60 # Expiry time (second)
      EnableFallback: false # Only support for Trojan and Vless
      FallBackConfigs:  # Support multiple fallbacks
        - SNI: # TLS SNI(Server Name Indication), Empty for any
          Alpn: # Alpn, Empty for any
          Path: # HTTP PATH, Empty for any
          Dest: 80 # Required, Destination of fallback, check https://xtls.github.io/config/features/fallback.html for details.
          ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for disable
      EnableREALITY: false # 是否开启 REALITY
      DisableLocalREALITYConfig: false  # 是否忽略本地 REALITY 配置
      REALITYConfigs: # 本地 REALITY 配置
        Show: false # Show REALITY debug
        Dest: m.media-amazon.com:443 # REALITY 目标地址
        ProxyProtocolVer: 0 # Send PROXY protocol version, 0 for disable
        ServerNames: # Required, list of available serverNames for the client, * wildcard is not supported at the moment.
          - m.media-amazon.com
        PrivateKey: # 可不填
        MinClientVer: # Optional, minimum version of Xray client, format is x.y.z.
        MaxClientVer: # Optional, maximum version of Xray client, format is x.y.z.
        MaxTimeDiff: 0 # Optional, maximum allowed time difference, unit is in milliseconds.
        ShortIds: # 可不填
          - ""
      CertConfig:
        CertMode: none # Option about how to get certificate: none, file, http, tls, dns. Choose "none" will forcedly disable the tls config.
        CertDomain: "node1.test.com" # Domain to cert
        CertFile: /etc/XrayR/cert/node1.test.com.cert # Provided if the CertMode is file
        KeyFile: /etc/XrayR/cert/node1.test.com.key
        Provider: alidns # DNS cert provider, Get the full support list here: https://go-acme.github.io/lego/dns/
        Email: [email protected]
        DNSEnv: # DNS ENV option used by DNS provider
          ALICLOUD_ACCESS_KEY: aaa
          ALICLOUD_SECRET_KEY: bbb

Screenshot 2023-11-12 092855

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

Screenshot 2023-11-12 093131
This xrayr log error is seen very often on all servers and nodes.

from xrayr.

lanziii avatar lanziii commented on August 30, 2024

@MrVb0 create
Subscription management
Thanks.

from xrayr.

lanziii avatar lanziii commented on August 30, 2024

@MrVb0

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

this error means ur vless uuid is wrong

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

This error in a server was reduced by increasing device_limit to 5! what is your opinion ?

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

I feel that this bug is related to the "device_limit" method in your xrayr.
What happens is that the user is using a node, and after a few minutes or hours, his connection is disconnected, and none of the nodes connect to him for a few minutes, and it is accompanied by "eof" errors (sometimes also tls errors). )
I think this is when the "invalid request user id" error is displayed in the xrayr log.
While according to the investigation I made, there is no problem for them from the uuid side.
Unfortunately, this problem has caused a lot of dissatisfaction among my users.
How do you think I can check where the problem is?
I put device_limit for each user in the panel: 3 and left the Device limit option in xrayr empty.
I also set the global device limit option to "False" in xrayr.
I also set DeviceOnlineMinTraffic: 5000.
But the problem is still there and the errors are still there and there are many interruptions in the connection...

I want to completely remove the limitation of the device to investigate the matter further and I will inform you of the result for progress. (I leave Device_limit empty for all users from the database)

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

@MrVb0 if "invalid request user id" show up it means user be limited by node.
Please check how many deviceonline shown in dashboard at this moment. I'll check the code later

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

Does your node set behind cdn like cloudflare?

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

Does your node set behind cdn like cloudflare?

Yes, some of them use cdn
But some are direct reality

Of course, those nodes that use CDN also transmit the real IP.

It should be noted that my v2board panel site also uses Cloudflare

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

@MrVb0 ur node can't get the real ip from client
cdn use different ip to access ur node, then counts more than one device

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

@MrVb0 ur node can't get the real ip from client cdn use different ip to access ur node, then counts more than one device

But according to my review, the real IP is transferred well. Of course, I don't use cloudflare and I use another cdn. But in the xrayr logs, it is clear that the IP that is transferred is the real IP of the user (to be sure, I just tested again with my device and my real IP was shown in the log)

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

According to the code.
If user's ip keep no change,
Even it reached the device limit, the connection won't be ended up.

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

I completely set device_limit to null for all users.
I also set device_limit equal to 0 in all nodes.
I also set the global device limit to False
Now it seems that the connection is stable and we don't have the interruptions that happen. But still (much less than before) I have "invalid request address" and "invalid request user id" errors.
I am doing more tests and will announce the results.
Thanks

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

@MrVb0 no matter speed. it will only count as 1 device when traffic reach the value.
device numbers base on ip_nodeid, same ip on multi node will count as more than one device

When an IP pings all nodes in one second (sing box), does the system make a mistake in detecting the number of devices?
Or, for example, what about when a user tests different nodes very quickly?
Or have "several child nodes" from "5 parent nodes" and the user should ping them and switch between them.

Of course, in the test I had, I think the problem may not be directly related to getting ping, because this problem happens without any special reason, even when I don't get ping...
I am just trying to check the various factors and possible reasons.

But whatever it is, it seems to be directly related to "device_limit" because so far it seems that by disabling all factors related to device and IP limit, the problem has been solved. ( Of course, before migrating to your v2board and your xrayr, I used "xrayr global device limit" and it worked well and I didn't have such a problem )

Anyway, I hope you can help me solve this problem and I can use "device_limit".

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

@MrVb0 xrayr global limit base on IP. which means one device ping multi nodes only counts 1.

in v2board I make it counts all nodes, then add mintraffic config to allow ping.

You never told how many device numbers actually shown on the site. it make the problem difficult to solve.

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

You never told how many device numbers actually shown on the site. it make the problem difficult to solve.

Where can I see how many deviceonline?

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

IMG_20231114_165435.jpg

both user's dashboard & admin's user management

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

I checked, sometimes it shows 1 and sometimes 2 which is normal. I think it shows correctly!
So what do you think could be the problem?

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

if it show correctly i don't think it would cause any problem.
that's too weird.
could you test more on it?

i have no idea these time

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

Yes, I will do various tests and let you know, thank you for your time.

Just a few questions that I still don't know the exact answer to,

  • is the device_limit system that you wrote based on both "IP" and "device" (gllobally on all nodes)?
    That is, can this system check the number of IPs connected to this account (globally on all nodes) and can it check the number of devices connected to this account with one IP (globally on all nodes) check?

  • To use your device_limit, is it better to disable xrayr-globaldevicelimit (set Enable=false)?
    Actually, it seems that your device_limit does what xrayr-globaldevicelimit does, and we don't need to use xrayr-globaldevicelimit, right?

(I use Google Translate for translation, I apologize in advance for any lexical mistakes or wrong phrasing)
Thanks

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024
  • is the device_limit system that you wrote based on both "IP" and "device" (gllobally on all nodes)?

Nodes upload user's IP to panel every 60s. Panel counts online IPs then save it in redis. When nodes get userlist from panel it also get the global online numbers for every user.

That is, can this system check the number of IPs connected to this account (globally on all nodes) and can it check the number of devices connected to this account with one IP (globally on all nodes) check?

Same IP use different node would not consider as same device. When you connect to 3 nodes it counts 3 devices.

  • To use your device_limit, is it better to disable xrayr-globaldevicelimit (set Enable=false)?

It MUST set to false

Actually, it seems that your device_limit does what xrayr-globaldevicelimit does, and we don't need to use xrayr-globaldevicelimit, right?

Yes

from xrayr.

lanziii avatar lanziii commented on August 30, 2024

@wyx2685 to fonfig

DeviceOnlineMinTraffic: 512 #大于此流量时上报设备数在线,单位kB,不填则默认上报

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

@wyx2685
excellent .
I will reset the device_limit settings again and test and report back to you. Thank you

from xrayr.

Mjeir avatar Mjeir commented on August 30, 2024

@wyx2685 excellent . I will reset the device_limit settings again and test and report back to you. Thank you

سلام داداش
من هر کاری میکنم با Vless روی کلود فلر نمیتونم پینگ بگیرم .
هم با TLS هم بدون TLS
فقط وقتی ای پی سرور رو مستقیم میدم . جواب میده.

همون ای پی و دامنه و سرت با Vmess جواب میده.
شما تونستی کاری بکنی ؟

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

@Mjeir lol cloudflare should use vless+ws/grpc+tls

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

@wyx2685
I did some research during this time
Unfortunately, the disconnection problem is directly related to device_limit
After re-activating device_limit, many of my users reported this problem that after a few minutes their connection is disconnected and all the nodes cannot be connected for several minutes.
This problem happened several times a day even for my account and it was very annoying.
So, finally, I had to set device_limit to null for all users in the database.

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

@MrVb0 It's not recommended to use devicelimit if your nodes is behind CDN/loadbalance/etc..
If it still can't get the true device number, please help me to improve the code.
I just cant figure out what is actually happened

from xrayr.

kevlau1 avatar kevlau1 commented on August 30, 2024

@wyx2685 I did some research during this time Unfortunately, the disconnection problem is directly related to device_limit After re-activating device_limit, many of my users reported this problem that after a few minutes their connection is disconnected and all the nodes cannot be connected for several minutes. This problem happened several times a day even for my account and it was very annoying. So, finally, I had to set device_limit to null for all users in the database.

if the cdn you are using can not pass real ip, just stop using device limit, that is it. its not the issue of developer.

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

@wyx2685
I have tested many times and I am sure that the user's real IP is transferred correctly.
Also, this problem did not exist in the original xrayr and it worked well through redis globaldevicelimit.
So it seems that there is a problem in device_limit.
I would really like to help in solving it, but I don't know what kind of help I can get.
Have other people encountered this problem?

An important thing:
I have several child nodes for several parent nodes, and I think that this number of child nodes may cause a mistake in Device_limit calculations on one node.

from xrayr.

wyx2685 avatar wyx2685 commented on August 30, 2024

@MrVb0 If your customer use ping test on several child nodes, then parent node counts online device just as the number of childs.
Add traffic limited doesn't help in that situation.

Could you tell me how you transfer the real IP from child node to parent?

The message i need is number of child nodes and parent nodes. How they connect.How many device counts is shown when disconnect by node, does it reach the limit?

from xrayr.

MrVb0 avatar MrVb0 commented on August 30, 2024

@wyx2685 I use child-node and parent-node on the same server! In fact, I just enter the parent-node ID in the xrayr of the server and the child-nodes only have the task of additional nodes with different sni. Actually everything is like parent-node and only sni is different.
For example, I have 1 parent-node and I have created 6 to 10 child-nodes for it, which actually only differ in their sni. (Different sni have different results in terms of speed in different internet operators)
Only the parent-node ID is entered in xrayr and the rest of the nodes (child-nodes) are extra and only play the role of different sni in the subscription and are actually the same parent-node with different sni.

from xrayr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.