Answers:
Servers Ultimate是一款高级应用程序,用于将手机转变为服务器。由同一开发人员提供的代理服务器提供了一种更基本的,完全是“基于代理服务器”的方法。如其说明所述:
在设备上运行自己的代理服务器!该应用程序可以处理HTTP和HTTPS协议以及GET / POST请求。您甚至可以将应用程序设置为将所有连接转发到默认主机和端口,以便您也可以通过套接字使用其他协议!
他们后来添加
有关更多服务器和功能的信息,请查看我们的应用服务器终极版
有关服务器的终极一些额外的信息,请查看这篇文章LifeHacker的,这篇文章在XDA,并且这些应用自己的XDA线程。
如果您只想在Wifi上设置代理,则可以使用Servers Ultimate轻松地做到这一点,但是我不知道为什么有人会真正想要这样做。一个更有用的选择是使用移动数据,但是正如@Kevin所说,您将遇到很多麻烦,即在ISP级别(Verizon,AT&T等)。您可能不会让他们为您更改其NAT策略。
很难将您的移动数据用作代理,因为所有传入的连接均被阻止。但是,如果您有一台笔记本电脑连接到wifi,并且您的手机通过adb连接到笔记本电脑,则一种选择是运行如下命令:
adb forward tcp:6400 tcp:8080
此命令将发送到主机(笔记本电脑)的6400端口的所有TCP连接转发到手机的8080端口。接下来,在端口8080上运行的Servers Ultimate App上设置代理服务器。不需要root!
现在,通过端口6400对笔记本电脑的任何请求都将转发到您的移动数据!通过打开firefox,进入设置,网络并使用127.0.0.1和端口6400作为代理进行测试。您可以打开路由器以使用此端口通过公共wifi进行访问,尽管我建议设置某种安全策略。
大量的教程可在笔记本电脑上启用开发人员选项和adb,这很容易。
If you're just interested in setting a proxy up over your Wifi, you can do that with Servers Ultimate quite easily, but I don't know why anyone would really want to do that. A much more useful option is to use mobile data,
是否同意Servers Ultimate无法通过4G(而不是通过WiFi)设置代理?(我问,因为我可以在4G上建立代理,并想知道它是否完全可能)
我在使Servers Ultimate的代理服务器正常工作时遇到了一些麻烦,我的第一个想法是这是因为我的手机未植根。但是,根据您的用例,这里的问题实际上不一定是操作系统级别的。
如果您尝试将移动数据连接用作代理,则可能会遇到麻烦,因为大多数移动数据提供程序都会阻止您通常可以用来设置代理的任何端口。最好的选择是与移动数据提供商联系,以查看它们是否有任何开放的端口超出1024的值(出于安全原因,Android会阻止低于此数字的端口)。
或者,您可以:
要了解这种情况,请尝试在端口打开的Wifi上运行Servers Ultimate代理服务器。您将拥有可以正常运行的功能,但是如果您的目标是使用移动数据,那么您现在就不走运了。
如果您的手机已扎根(或至少已解锁引导加载程序),则可以将tinyproxy(HTTP / HTTPS代理)作为init
服务运行。它可以与Wi-Fi和移动数据同时使用,在后一种情况下,您必须确保可以从互联网访问手机。请参阅如何通过SSH通过3G / 4G公共IP连接到Android?
/data
或上创建目录/system
:
~# mkdir -p /data/local/tinyproxy/tmp
创建配置文件:
# /data/local/tinyproxy/tinyproxy.conf
Port 8080
Timeout 600
LogFile "/tinyproxy.log"
LogLevel Connect
MaxClients 100
MinSpareServers 5
MaxSpareServers 20
StartServers 5
MaxRequestsPerChild 0
ViaProxyName "tinyproxy"
#BasicAuth <username> <password>
有关更多配置选项,请参阅文档。
tinyproxy
从源代码构建,或者可以尝试这一方法。将二进制文件移至/data/local/tinyproxy/
并设置权限。使用AID_NOBODY
或任何其他未使用的UID进行服务:
~# cd /data/local/tinyproxy/
~# chown -R 9999.9999 .
~# chmod 0755 . tmp tinyproxy
~# chmod 0644 tinyproxy.conf
将以下行添加到/init.rc
或任何其他.rc
文件:
# /system/etc/init/tinyproxy.rc
service tinyproxy /system/bin/chroot /data/local/tinyproxy /tinyproxy -d -c /tinyproxy.conf
seclabel u:r:magisk:s0
user 9999
group 9999
disabled
capabilities NET_RAW NET_BIND_SERVICE SYS_CHROOT
on property:sys.boot_completed=1
start tinyproxy
如果使用任何防火墙应用程序,请确保取消阻止传入端口8080
。重启设备。tinyproxy
服务器应以最小特权运行。本地或远程连接。
如果电话没有植根,或者您想进一步对代理服务器进行沙箱处理,则可以使用以下规则来修补SELinux策略。使用Magisk supolicy
工具或sepolicy-inject
:
create tinyproxy
allow init tinyproxy process transition
allow init tinyproxy process { rlimitinh siginh noatsecure }
allow tinyproxy tinyproxy process { getsched fork }
allow tinyproxy toolbox_exec file { entrypoint read getattr execute }
allow tinyproxy tinyproxy dir { search write add_name remove_name }
allow tinyproxy tinyproxy lnk_file read
allow tinyproxy labeledfs filesystem associate
allow tinyproxy tinyproxy file { read open getattr create write append unlink execute execute_no_trans }
allow tinyproxy tinyproxy capability { sys_chroot net_raw }
allow tinyproxy tinyproxy unix_dgram_socket { create connect write }
allow tinyproxy tinyproxy tcp_socket { create connect accept read bind getattr write shutdown setopt listen }
allow tinyproxy port tcp_socket { name_connect name_bind }
allow tinyproxy node tcp_socket node_bind
allow tinyproxy tinyproxy udp_socket { create connect read getattr write bind }
allow tinyproxy node udp_socket node_bind
allow tinyproxy system_data_file file lock
allow tinyproxy tinyproxy file lock
dmesg
了avc
否认定义任何更需要规则。seclabel u:r:magisk:s0
在服务中替换为seclabel u:r:tinyproxy:s0
。~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
现在,该服务也将在没有Magisk的情况下运行。
有关:
SOCKS代理可以与SSH一起运行,请参见: