Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

android without root use v2ray #219

Merged
merged 3 commits into from
Dec 25, 2020
Merged

android without root use v2ray #219

merged 3 commits into from
Dec 25, 2020

Conversation

CalmLong
Copy link

No description provided.

@elvisw
Copy link

elvisw commented Dec 23, 2020

感觉用Termux更方便一些……

@CalmLong

This comment has been minimized.

@elvisw
Copy link

elvisw commented Dec 23, 2020

有 Root 怎么都方便

Termux不需要root……

@CalmLong

This comment has been minimized.

@elvisw
Copy link

elvisw commented Dec 23, 2020

有 Root 怎么都方便

Termux不需要root……

关掉它会影响程序运行吗

关了里面的进程肯定也没了,不过可以用这个:
https://wiki.termux.com/wiki/Termux-wake-lock

@CalmLong

This comment has been minimized.

@elvisw
Copy link

elvisw commented Dec 23, 2020

有 Root 怎么都方便

Termux不需要root……

关掉它会影响程序运行吗

关了里面的进程肯定也没了,不过可以用这个:
https://wiki.termux.com/wiki/Termux-wake-lock

那就见仁见智了,用 adb 后台运行 core 之后无需外挂程序

但是需要电脑 😄

@CalmLong
Copy link
Author

有 Root 怎么都方便

Termux不需要root……

关掉它会影响程序运行吗

关了里面的进程肯定也没了,不过可以用这个:
https://wiki.termux.com/wiki/Termux-wake-lock

那就见仁见智了,用 adb 后台运行 core 之后无需外挂程序

但是需要电脑 😄

用户会自己选择合适的方案

@kslr kslr requested a review from nicholascw December 23, 2020 05:54
@CalmLong

This comment has been minimized.

@CalmLong CalmLong closed this Dec 25, 2020
@nicholascw
Copy link
Contributor

感觉没啥大问题呀为啥突然又自己关闭了QAQ

@elvisw
Copy link

elvisw commented Dec 25, 2020

感觉设置APN代理还是有一些兼容性问题的,不知道有没有Android app能把socks代理甚至http代理转化成VPN

@CalmLong
Copy link
Author

感觉设置APN代理还是有一些兼容性问题的,不知道有没有Android app能把socks代理甚至http代理转化成VPN

我用了几天没发现什么兼容性问题,上银行软件也没发现什么,那你能举几个例子吗

@CalmLong

This comment has been minimized.

@CalmLong
Copy link
Author

HTTP代理顾名思义只在HTTP场景下才会使用,要说兼容性问题那也应该是 SOCKS 代理带来兼容性问题的可能更大

对于使用 SOCKS 还是 HTTP,core 又不会因为在安卓上功能受限制,例如 Telegram 支持 SOCKS 代理,填写上 127.0.0.1 加端口号不就行了,要是改变成别的还不如直接用套壳App

@CalmLong

This comment has been minimized.

@CalmLong CalmLong reopened this Dec 25, 2020
Copy link
Member

@DuckSoft DuckSoft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

先合并。有更好的方法,请直接写文章。

@DuckSoft DuckSoft merged commit 8aa1a9f into v2fly:transifex Dec 25, 2020
@CalmLong CalmLong deleted the transifex branch December 25, 2020 06:13
@elvisw
Copy link

elvisw commented Dec 25, 2020

淡定,我没有说你写的教程不好,只是讨论一下嘛。至于免root和全局代理,V2RayNG这个app不就可以么

@sensitive-account
Copy link

大佬您好 看到您的文档 我才意识到以往忽略了freedom出口默认(不使用useip)需要依赖系统DNS解析 如您所说: 而Android没有/etc/resolve.conf go默认会指向127.0.0.1:53 Android默认也是没有本地DNS监听127.0.0.1:53的 然后就产生了一个以前没有的疑惑 termux直接跑core的话 因为termux环境是有/etc/resolve.conf的 没有问题可以理解 那v2rayNG和v2ray的magisk模块 为什么在访问国内时候正常呢?也许v2rayNG编译时候也进行了修改 但是模块使用的都是预编译的core自己替换即可 这就很奇怪了。。。

@nicholascw
Copy link
Contributor

nicholascw commented Dec 29, 2020 via email

@CalmLong
Copy link
Author

大佬您好 看到您的文档 我才意识到以往忽略了freedom出口默认(不使用useip)需要依赖系统DNS解析 如您所说: 而Android没有/etc/resolve.conf go默认会指向127.0.0.1:53 Android默认也是没有本地DNS监听127.0.0.1:53的 然后就产生了一个以前没有的疑惑 termux直接跑core的话 因为termux环境是有/etc/resolve.conf的 没有问题可以理解 那v2rayNG和v2ray的magisk模块 为什么在访问国内时候正常呢?也许v2rayNG编译时候也进行了修改 但是模块使用的都是预编译的core自己替换即可 这就很奇怪了。。。

奇怪的是 Android

直接把二进制程序放到 Android 系统里面运行其实就相当于程序在一个阉割版的 Android 环境中,打包成 APK 的应用程序运行才能享受 "完整" 的 Android 的环境;"完整" 的环境内就可以使用 Android 的许多接口,这其中就包含获取系统 DNS 的接口

APK 的应用程序是通过 Android 提供的接口的方式获取到系统的 DNS 的

所以,v2rayNG 是一个 APK 程序它可以通过接口获得系统的 DNS,其他程序也是如此

二进制程序本身什么都不包含,也就无法使用这些接口了

@CalmLong
Copy link
Author

不过让人不解的是为什么 Android 要把系统的 DNS 删掉,然后让 APK 通过接口获取

@sensitive-account
Copy link

magisk有root啊可以直接加resolv.conf sensitive-account notifications@github.com 于 2020年12月29日周二 11:01写道:

大佬您好 看到您的文档 我才意识到以往忽略了freedom出口默认(不使用useip)需要依赖系统DNS解析 如您所说: 而Android没有/etc/resolve.conf go默认会指向127.0.0.1:53 Android默认也是没有本地DNS监听127.0.0.1:53的 然后就产生了一个以前没有的疑惑 termux直接跑core的话 因为termux环境是有/etc/resolve.conf的 没有问题可以理解 那v2rayNG和v2ray的magisk模块 为什么在访问国内时候正常呢?也许v2rayNG编译时候也进行了修改 但是模块使用的都是预编译的core自己替换即可 这就很奇怪了。。。 — You are receiving this because your review was requested. Reply to this email directly, view it on GitHub <#219 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYSFKUFV3OWCW2S57UDYRDSXIDN3ANCNFSM4VGKXF4A .

啊这 好久没用模块了 其实我没验证 刚才看了下模块路径 {MODDIR}/system/etc 是有一个resolve.conf去挂载.... 我憨了 不好意思😂

@sensitive-account
Copy link

不过让人不解的是为什么 Android 要把系统的 DNS 删掉,然后让 APK 通过接口获取

可能是逐步限制了吧...昨晚隔壁群看到他们在讨论如何在Android端热更新/替换 core 说到以前app的obb里是可以直接跑二进制的...

@elvisw
Copy link

elvisw commented Dec 30, 2020

大佬您好 看到您的文档 我才意识到以往忽略了freedom出口默认(不使用useip)需要依赖系统DNS解析 如您所说: 而Android没有/etc/resolve.conf go默认会指向127.0.0.1:53 Android默认也是没有本地DNS监听127.0.0.1:53的 然后就产生了一个以前没有的疑惑 termux直接跑core的话 因为termux环境是有/etc/resolve.conf的 没有问题可以理解 那v2rayNG和v2ray的magisk模块 为什么在访问国内时候正常呢?也许v2rayNG编译时候也进行了修改 但是模块使用的都是预编译的core自己替换即可 这就很奇怪了。。。

如果没有root的话,termux一样也读不到/etc/resolv.conf,所以DNS也会出同样的问题。不过如果是termux的话,可以考虑用proot模拟一个“真正的”Linux发行版环境。proot是不需要手机的root权限的。

@sensitive-account
Copy link

话说我又有了个疑问... freedom加一个useip调用内置的 是不是就好了 不用折腾( 但是好像您这个和 NG/模块 都没有这样做 不是很理解 可能是因为: 您这个不用说 肯定是要自己提供json的 NG可能会有用户导入自定义json 模块肯定也是用户自己的json 一般大家的json默认又不加useip 到时候用户会出问题?

@sensitive-account
Copy link

大佬您好 看到您的文档 我才意识到以往忽略了freedom出口默认(不使用useip)需要依赖系统DNS解析 如您所说: 而Android没有/etc/resolve.conf go默认会指向127.0.0.1:53 Android默认也是没有本地DNS监听127.0.0.1:53的 然后就产生了一个以前没有的疑惑 termux直接跑core的话 因为termux环境是有/etc/resolve.conf的 没有问题可以理解 那v2rayNG和v2ray的magisk模块 为什么在访问国内时候正常呢?也许v2rayNG编译时候也进行了修改 但是模块使用的都是预编译的core自己替换即可 这就很奇怪了。。。

如果没有root的话,termux一样也读不到/etc/resolv.conf,所以DNS也会出同样的问题。不过如果是termux的话,可以考虑用proot模拟一个“真正的”Linux发行版环境。proot是不需要手机的root权限的。

如果是不su直接运行的话 应该是用的termux的$PREFIX/etc/resolve.conf吧?(

@elvisw
Copy link

elvisw commented Dec 30, 2020

话说我又有了个疑问... freedom加一个useip调用内置的 是不是就好了 不用折腾( 但是好像您这个和 NG/模块 都没有这样做 不是很理解 可能是因为: 您这个不用说 肯定是要自己提供json的 NG可能会有用户导入自定义json 模块肯定也是用户自己的json 一般大家的json默认又不加useip 到时候用户会出问题?

你可以参考这个:v2ray/v2ray-core#1909 (comment)

@CalmLong
Copy link
Author

话说我又有了个疑问... freedom加一个useip调用内置的 是不是就好了 不用折腾( 但是好像您这个和 NG/模块 都没有这样做 不是很理解 可能是因为: 您这个不用说 肯定是要自己提供json的 NG可能会有用户导入自定义json 模块肯定也是用户自己的json 一般大家的json默认又不加useip 到时候用户会出问题?

问题就诡异在这里,Freedom 使用 UseIP 时 V2Ray 确实会使用内置的 DNS 来解析,但是一段时间后就会出现请求 127.0.0.1:53 的情况,然后就完了。。但是如果修改了 Go 语言的源码后,这个问题就不存在了

@sensitive-account
Copy link

话说我又有了个疑问... freedom加一个useip调用内置的 是不是就好了 不用折腾( 但是好像您这个和 NG/模块 都没有这样做 不是很理解 可能是因为: 您这个不用说 肯定是要自己提供json的 NG可能会有用户导入自定义json 模块肯定也是用户自己的json 一般大家的json默认又不加useip 到时候用户会出问题?

问题就诡异在这里,Freedom 使用 UseIP 时 V2Ray 确实会使用内置的 DNS 来解析,但是一段时间后就会出现请求 127.0.0.1:53 的情况,然后就完了。。但是如果修改了 Go 语言的源码后,这个问题就不存在了

原来是这样.... 还有历史bug在这里等着....

@elvisw
Copy link

elvisw commented Dec 30, 2020

大佬您好 看到您的文档 我才意识到以往忽略了freedom出口默认(不使用useip)需要依赖系统DNS解析 如您所说: 而Android没有/etc/resolve.conf go默认会指向127.0.0.1:53 Android默认也是没有本地DNS监听127.0.0.1:53的 然后就产生了一个以前没有的疑惑 termux直接跑core的话 因为termux环境是有/etc/resolve.conf的 没有问题可以理解 那v2rayNG和v2ray的magisk模块 为什么在访问国内时候正常呢?也许v2rayNG编译时候也进行了修改 但是模块使用的都是预编译的core自己替换即可 这就很奇怪了。。。

如果没有root的话,termux一样也读不到/etc/resolv.conf,所以DNS也会出同样的问题。不过如果是termux的话,可以考虑用proot模拟一个“真正的”Linux发行版环境。proot是不需要手机的root权限的。

如果是不su直接运行的话 应该是用的termux的$PREFIX/etc/resolve.conf吧?(

标准的go运行环境没法检测到termux的$PREFIX,除非你像楼主一样修改源码重新编译go,或者用proot

@sensitive-account
Copy link

大佬您好 看到您的文档 我才意识到以往忽略了freedom出口默认(不使用useip)需要依赖系统DNS解析 如您所说: 而Android没有/etc/resolve.conf go默认会指向127.0.0.1:53 Android默认也是没有本地DNS监听127.0.0.1:53的 然后就产生了一个以前没有的疑惑 termux直接跑core的话 因为termux环境是有/etc/resolve.conf的 没有问题可以理解 那v2rayNG和v2ray的magisk模块 为什么在访问国内时候正常呢?也许v2rayNG编译时候也进行了修改 但是模块使用的都是预编译的core自己替换即可 这就很奇怪了。。。

如果没有root的话,termux一样也读不到/etc/resolv.conf,所以DNS也会出同样的问题。不过如果是termux的话,可以考虑用proot模拟一个“真正的”Linux发行版环境。proot是不需要手机的root权限的。

如果是不su直接运行的话 应该是用的termux的$PREFIX/etc/resolve.conf吧?(

标准的go运行环境没法检测到termux的$PREFIX,除非你像楼主一样修改源码重新编译go,或者用proot

嗯嗯 我termux下还有个arch 那个应该符合 然后我刚才termux试了下 无提权cat /etc/resolv.conf 好像是读取到了模块挂载的那个系统环境的resolv.conf....

@CalmLong
Copy link
Author

话说我又有了个疑问... freedom加一个useip调用内置的 是不是就好了 不用折腾( 但是好像您这个和 NG/模块 都没有这样做 不是很理解 可能是因为: 您这个不用说 肯定是要自己提供json的 NG可能会有用户导入自定义json 模块肯定也是用户自己的json 一般大家的json默认又不加useip 到时候用户会出问题?

问题就诡异在这里,Freedom 使用 UseIP 时 V2Ray 确实会使用内置的 DNS 来解析,但是一段时间后就会出现请求 127.0.0.1:53 的情况,然后就完了。。但是如果修改了 Go 语言的源码后,这个问题就不存在了

原来是这样.... 还有历史bug在这里等着....

或许是 Go 语言对 Android 支持的问题吧,关于 Android 没有 /etc/resolv.conf 的问题很早就有人提了,但是Go官方好像不理会

@sensitive-account
Copy link

话说我又有了个疑问... freedom加一个useip调用内置的 是不是就好了 不用折腾( 但是好像您这个和 NG/模块 都没有这样做 不是很理解 可能是因为: 您这个不用说 肯定是要自己提供json的 NG可能会有用户导入自定义json 模块肯定也是用户自己的json 一般大家的json默认又不加useip 到时候用户会出问题?

问题就诡异在这里,Freedom 使用 UseIP 时 V2Ray 确实会使用内置的 DNS 来解析,但是一段时间后就会出现请求 127.0.0.1:53 的情况,然后就完了。。但是如果修改了 Go 语言的源码后,这个问题就不存在了

原来是这样.... 还有历史bug在这里等着....

或许是 Go 语言对 Android 支持的问题吧,关于 Android 没有 /etc/resolv.conf 的问题很早就有人提了,但是Go官方好像不理会

这就很尴尬了 自家不兼容自家( 😂

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

Successfully merging this pull request may close these issues.

None yet

5 participants