yichya / luci-app-xray

(Almost) full feature Xray client for OpenWrt
Mozilla Public License 2.0
553 stars 327 forks source link

any way to put xray in temp ? #303

Closed firefoxOnFire closed 1 year ago

firefoxOnFire commented 1 year ago

I have device with less storage. But I have enough temp space to install xray. Can I install this luci app to main storage and xray to temp ?? Or any workaround to make this work ??

yichya commented 1 year ago

Personally I would not recommend doing that because Xray itself needs a significant amount of memory especially with Geodata files. You could try building a firmware with Xray included instead.

firefoxOnFire commented 1 year ago

Personally I would not recommend doing that because Xray itself needs a significant amount of memory especially with Geodata files. You could try building a firmware with Xray included instead.

Hey, thanks for reply. I tried sing-box as it can only take 7MB space. And i used it in tun mode with auto route on. But due to less memory. It is killing my router. So I thought i can use this luci app as it will use tproxy to handle. And I don't need geodata at all.

There is a passwall which allow using app from temp space. But it is bloated which require so much memory.

It will be good if this can also support xray from temp. Thanks.

yichya commented 1 year ago

If you insist, put xray binary under /tmp and change this field (write /tmp/xray in 'custom' and press Enter to confirm) should be enough

image
firefoxOnFire commented 1 year ago

If you insist, put xray binary under /tmp and change this field (write /tmp/xray in 'custom' and press Enter to confirm) should be enough

image

Problem is when i try to install ipk from release, it starts to download xray by itself and i don't have enough space for that. Which is causing problem. Thanks.

yichya commented 1 year ago

Problem is when i try to install ipk from release, it starts to download xray by itself. Which is causing problem. Thanks.

Try disconnecting from the Internet and installing with --force-depends to let opkg ignore that. Other dependencies like kmod-nft-tproxy still need to be installed.

Or if your device has USB port I'd suggest trying extroot

firefoxOnFire commented 1 year ago

Try disconnecting from the Internet and installing with --force-depends to let opkg ignore that. Other dependencies like kmod-nft-tproxy still need to be installed.

Yeah, Thanks. I will try.

Or if your device has USB port I'd suggest trying extroot

Sorry, I don't have. It is a low budget router Mi 4A Gigabit Edition. Thanks.

hawshemi commented 1 year ago

@firefoxOnFire I had this problem with my router.

You have to build OpenWRT with xray-core and luci-app-xray included. but note that xray itself uses a lot of RAM. I tested with 128Mb RAM with tproxy and direct routing for IR IPs and domains(+ad blocking). Just 2 clients could connect and use the router without bottlenecking the RAM and CPU.

firefoxOnFire commented 1 year ago

@firefoxOnFire I had this problem with my router.

You have to build OpenWRT with xray-core and luci-app-xray included. but note that xray itself uses a lot of RAM. I tested with 128Mb RAM with tproxy and direct routing for IR IPs and domains(+ad blocking). Just 2 clients could connect and use the router without bottlenecking the RAM and CPU.

Same happening to me also. I was using sing-box with tun. As I don't know how to use tproxy. Which router u used?

hawshemi commented 1 year ago

I use the tproxy in the luci app xray itself. I have GLinet AR750S.

If you have 128mb Ram, there is no way you can serve more than 2-3 clients each with 20mbit DL speed average.

firefoxOnFire commented 1 year ago

I use the tproxy' in the luci app xray itself. I have GLinet AR750S.

If you have 128mb Ram, there is no way you can serve more than 2-3 clients each with 20mbit DL speed average.

I will give a try to this luci app xray too. Thanks for your valuable info. Lets see if 1.9.0 version of xray will be improved.

firefoxOnFire commented 1 year ago

Hello again, I tried the thing you told. Everything is installed properly. But whenever I run, I get this error:

Xray 1.8.1 (Xray, Penetrates Everything.) OpenWrt (go1.19.10 linux/mipsle)
A unified platform for anti-censorship.
2023/06/22 05:56:26 [Info] infra/conf/serial: Reading config: /var/etc/xray/config.json
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x11a58c4]

goroutine 1 [running]:
github.com/xtls/xray-core/infra/conf.FakeDNSPostProcessingStage.Process({}, 0x41f25b0)
        github.com/xtls/xray-core/infra/conf/fakedns.go:65 +0xc1c
github.com/xtls/xray-core/infra/conf.PostProcessConfigureFile(0x41f25b0)
        github.com/xtls/xray-core/infra/conf/lint.go:18 +0xcc
github.com/xtls/xray-core/infra/conf.(*Config).Build(0x41f25b0)
        github.com/xtls/xray-core/infra/conf/xray.go:548 +0x44
github.com/xtls/xray-core/infra/conf/serial.BuildConfig({0x41d8968, 0x1, 0x1}, {0x41d8a10, 0x1, 0x1})
        github.com/xtls/xray-core/infra/conf/serial/builder.go:29 +0x74
github.com/xtls/xray-core/core.LoadConfig({0x14893a4, 0x4}, {0x1309f20, 0x41fc000})
        github.com/xtls/xray-core/core/config.go:117 +0x3e8
main.startXray()
        github.com/xtls/xray-core/main/run.go:185 +0xd8
main.executeRun(0x1de6c80, {0x4036138, 0x0, 0x0})
        github.com/xtls/xray-core/main/run.go:65 +0x4c
github.com/xtls/xray-core/main/commands/base.Execute()
        github.com/xtls/xray-core/main/commands/base/execute.go:64 +0x684
main.main()
        github.com/xtls/xray-core/main/main.go:22 +0x264 

PS: It was dns problem.

firefoxOnFire commented 1 year ago

I have tested putting xray in temp. And it worked. But it is taking so much ram. As this is not this lib problem. I am closing this. Thanks.