主要针对魔改版openlist一些错误解决方法,Go 语言写的程序在解析域名时,会去找系统的 /etc/resolv.conf 文件。老版本能用:因为它很可能是专门为 Termux 编译或打过补丁的,它知道去 Termux 的专属目录($PREFIX/etc/resolv.conf)找 DNS,
一、安装步骤 1.新建目录
mkdir -p ~/oplist && cd ~/oplist
2.把下载的压缩包放入oplist目录里
3.解压缩
tar -zxvf openlist-guangyapan_linux_arm64.tar.gz && chmod +x openlist-guangyapan
4.启动 OpenList 服务器
./openlist-guangyapan server
5.记住上面输出的面板
如果错过可以按 Ctrl + C 停止程序
输入命令:./openlist admin set 123456(这会把密码强行改为 123456)
6.修改端口 在data目录下的config.json文件里把"scheme":“http_port”: 5244改成想要端口。
二、解决错误
1.Go 语言写的程序在解析域名时,会去找系统的 /etc/resolv.conf 文件。
老版本能用:因为它很可能是专门为 Termux 编译或打过补丁的,它知道去 Termux 的专属目录($PREFIX/etc/resolv.conf)找 DNS。
这个魔改版报错:这玩意儿大概率是你直接从网上下载的标准 Linux 编译版。它根本不知道自己运行在 Termux 里! 它傻乎乎地去系统根目录 /etc/ 找配置,发现找不到,就只能向安卓系统底层求救。而安卓底层(因为你装了 Flclash,即使排除了 Termux,系统全局的 DNS 属性依然被改写了)告诉它:“去问 [::1]:53”。结果就是你看到的:撞墙,连接被拒绝。
因为前面那条 GODEBUG 命令对静态编译的 Go 程序无效,所以原样报错。
你只需要用 termux-chroot 命令把它包裹起来运行即可:
第一步:确保你安装了 proot 扩展(如果没装过的话,执行一次就行)
pkg install proot -y
第二步:用虚拟环境启动你的魔改版 在原有的启动命令前面,加上 termux-chroot:
termux-chroot ./openlist-guangyapan server
为什么这招管用? termux-chroot 会在当前终端启动一个虚拟的文件系统。在这个环境里,这个“瞎子”程序去读取 /etc/resolv.conf 时,Termux 会悄悄把正确的文件递给它。
2.由于这是一个编译好的独立程序,它在建立 HTTPS 加密连接时,需要去系统里找“根证书清单”来核对移动云盘的身份。但在 termux-chroot 虚拟环境里,它没找对 Termux 存放证书的路径,变成了个“脸盲”,不敢信任移动的服务器,于是自己把连接掐断了。
终极解决办法(零污染) 我们依然保持之前的原则:绝不乱改系统配置。既然它找不到证书,我们就直接在启动命令里,把 Termux 自带的合法证书文件“塞”给它。
请按顺序执行以下两步:
第一步、确保 Termux 已安装最新的根证书包 (大多数情况已经自带,执行一下以防万一更新):
pkg install ca-certificates -y
第二步、携带证书路径再次启动 在刚才的命令前面,加一个专门的环境变量 SSL_CERT_FILE,强行指路:
SSL_CERT_FILE=$PREFIX/etc/tls/cert.pem termux-chroot ./openlist-guangyapan server
3.pm2启动
请在 ~/oplist 目录下按以下步骤操作:
cd oplist
创建一个名为 oplist.sh 的文件:
nano oplist.sh
将下面这两行代码粘贴进去(先把环境变量导出,再执行启动命令):
#!/bin/bash
export SSL_CERT_FILE=$PREFIX/etc/tls/cert.pem
termux-chroot ./openlist-guangyapan server
按 Ctrl + O 保存,回车确认,然后按 Ctrl + X 退出。
必须让这个脚本拥有可执行权限,PM2 才能跑得起来:
chmod +x oplist.sh
加入 PM2 管理
pm2 start ./oplist.sh --name "oplist"
保存 PM2 进程状态
pm2 save
4.调整oplist.sh
#!/bin/bash
export SSL_CERT_FILE=$PREFIX/etc/tls/cert.pem
# 让这个程序的网络直接走本地代理,绕开那个瞎眼的自带 DNS
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
# 直接原生启动,没有任何性能损耗
./openlist-guangyapan server