使用xray可能会遇到的一些问题
No command provided, please run this program in terminal
,在其他平台下,会进入一个类似 shell 一样的界面。
这是因为 xray 是一款命令行工具,需要在命令行下运行并使用正确的参数,不能直接双击打开,具体的使用方法见 下载运行 章节。
在非 Windows 环境下,没有参数运行将进入 shell 模式,可以继续输入 version
等指令运行,在 Windows 下面此特性被禁用。
Proxy Failed
timeout awaiting response
等待代理返回时候超时,请检查网络情况,是否可以连通,如果是偶尔的超时,可以忽略,重试即可。connection reset by peer
连接被中断,请检查对方是否有 waf,ip 是否被拉黑,如果是国外的目标,可能是网络不稳定的原因。certificate has expired or is not yet valid
和 certificate signed by unknown authority
等 x509
开头的报错信息,请检查服务端的 ssl 证书配置是否正确,对于自签名证书等问题,可以选择不校验证书,将配置文件中的 tls_skip_verify
改为 true
即可。dial i/o timeout
这往往是连接目标网站时间过长导致的,前面指南中的 https://testphp.vulnweb.com 就是一个国外的网站,国内访问容易出现超时。增大配置文件中的 http -> dial_timeout
可以缓解这个问题。dial tcp: lookup xxx on xxx:53: no such host
要访问的地址的域名,xray 解析失败。example.xray.cool
写错为 exmple.xray.cool
。--json-output
或者 --html-output
之后没有出现结果文件http://proxy.xray.cool/
或者 http://xray/
,如果可以看到 xray is working
说明此浏览器已经成功设置 xray 为代理,请继续阅读下一条检查方法,否则请确认浏览器设置。127.0.0.1
、localhost
等默认不会走代理,这些白名单可能还存在用户设置的更多项目,请检查白名单。mitm
部分中的 restriction
的 includes
和 excludes
中,请检查此部分配置,比如默认情况下 gov
和 edu
域名会被排除在外。--url
指定目标扫描很快就结束了?--url URL
的情况下,xray 只会针对该 URL 本身进行漏洞检测,不会爬取网站内容。比如,你输入 --url https://baidu.com
,xray 只会检测百度首页
的漏洞,这种情况下通常是无法扫描出漏洞的。
如果你需要利用爬虫爬取页面后再检测漏洞,可以使用 --basic-crawler
选项,具体使用方法请参考文档。
mitm
部分的 upstream_proxy
项proxy:http://127.0.0.1:7777
这样的配置config.yaml
文件中 http
设置 max_qps
out of memory
而崩溃或被杀死fatal error: runtime: out of memory
,这个问题是因为系统内存不足了,xray 无法继续分配内存导致无法恢复的错误而退出。dmesg -T | grep xray
,如果里面有 out of memory
说明是因为系统内存不足而 kill 了 xray 进程。free -m
Memory: Alloc: n Mb
等,可以找到最后最后一条输出dmesg -T > dmesg.txt
内核日志ps -ef > ps.txt
进程列表crawlergo
。系统在发生内存不足情况的时候,会给所有的进程计算一个分数,直接相关就是内存占用大小,但是因为 xray
是单进程,而 crawlergo
是多进程,所以在同等内存占用情况下,xray
进程分数就会更高,就会被作为牺牲品而被 kill。这种情况下,可以max-tab-count
echo -500 > /proc/self/oom_score_adj
,降低被 oom 的可能性