Skip to content

设置代理

rev1si0n edited this page Mar 23, 2024 · 3 revisions

手动连接代理

只支持 http 以及 socks5 代理,不支持 IPv6,假设你从服务商处获得的代理为 http://1.x.x.x:8080,仅需如下几行代码来让设备流量通过此代理。

需要注意的是,设置代理后,正在运行的应用是不会立即使用设置的代理的,因为这些应用在设置代理之前就已经完成了 tcp 连接的建立。所以,需要你手动关闭应用并启动,应用才会通过代理建立连接。也就是说,如果你是做中间人流量分析,那设置代理后你需要关闭应用再重新打开才会看到应用的请求。

注:本机的 DNS 流量始终不会经过代理

profile = GproxyProfile()
profile.type = GproxyType.HTTP_CONNECT

# 此选项请根据实际情况选择你是否需要
profile.drop_udp = True
profile.host = "1.x.x.x"
profile.port = 8080

d.start_gproxy(profile)

完整的可选参数配置信息

profile = GproxyProfile()
# socks5 代理则为 GproxyType.SOCKS5
profile.type = GproxyType.HTTP_CONNECT
# 如果你需要重定向 DNS 查询到 114.114.114.114
# 注意此 DNS 是系统全局的,系统发出的所有DNS将会被转发
# 如果是与OpenVPN共存的情况,不要设置为OpenVPN的内网DNS服务器,否则可能会导致彻底断网
# 去掉 nameserver 配置行将使用系统默认 DNS
#
# 为什么有此选项:你可以修改一些应用的 dns 域名解析
profile.nameserver = "114.114.114.114"
profile.host = "代理服务器地址"
profile.port = 代理服务器端口

# 如果这个代理服务器需要登录信息(注意:如果没有,请注释或删除如下两行)
profile.password = "代理服务器登录密码"
profile.login = "代理服务器登录用户"

# socks5 模式支持 udp 代理,但是 http 代理并不支持
# 因为 udp 多数情况下并不会被代理,所以禁用 udp 流量是一个不错的选择
# 当 drop_udp 为 True 时,应用/系统的 UDP 流量将会被屏蔽,默认为 False
profile.drop_udp = False

# 本地流量是否需要*不经过*代理,如果为 True,本地流量
# 如 192.168.x.x 10.x.x.x 等路由器内网网段的流量将不会经过代理,默认为 False
# 注意:如果开启了 udp_proxy,此选项对于 UDP 流量无效
profile.bypass_local_subnet = True

# 是否需要代理 udp 流量
# 注意,http 代理服务不支持代理 udp 协议,开启此选项必须使用 socks5 作为代理服务器
# (GproxyType.SOCKS5),且 socks5 代理服务器必须配置开启 udp 代理模式,
# 需要稍加复杂的服务器配置,为了避坑,请参照 tools/socks5 里的介绍进行安装配置
# 当你使用 http 代理或者 drop_udp 选项为 True,此设置将会被忽略
profile.udp_proxy = False

# 开启此选项后,设备上所有的 DNS 流量都将通过代理发出
# 此选项通常在设置全局代理时使用,例如你想将设备全部流量通过代理发出的场景(可以避免DNS污染)
# 此选项不可在抓包场景使用,否则由于抓包软件可能无法正确对待 DNS 数据包,导致断网
profile.dns_proxy = False

# 如果需要仅对特定应用使用代理(例如安卓浏览器,如果是全局则删除这两行)
app = d.application("com.android.browser")
# 对于多开应用
app = d.application("com.android.browser", user=999)

profile.application.set(app)

# 启动代理
d.start_gproxy(profile)
# 关闭代理
d.stop_gproxy()

自动连接代理

你可以使 LAMDA 在启动时自动连接预设的代理服务器,复制下列配置并修改相关配置为你的代理信息

gproxy.enable=true
gproxy.type=http-connect
gproxy.host=1.x.x.x
gproxy.port=8080
gproxy.password=
gproxy.login=

将其追加或者写入到 properties.local,随后重启 LAMDA 即可。

快速搭建代理

LAMDA 在 tools 目录中提供了一个开箱即用同时支持 UDP 的 socks5 代理服务 docker,请转到 tools/socks5 目录查看 README.md 来获知如何使用。