Debian环境下GitHub自托管运行器代理URI格式错误问题求助
解决GitHub Actions自托管运行器代理URI格式错误问题
问题核心原因
密码中的特殊字符(如!、?、$、%、&)属于URI保留字符,未进行URL编码时,GitHub Actions运行器的严格URI解析器会判定格式错误。其他程序可能采用宽松解析规则,所以能正常识别未编码的代理串。
解决方案
1. 对密码中的特殊字符进行URL编码
将密码里的特殊字符替换为对应的URL编码值:
!→%21?→%3F$→%24%→%25&→%26
示例:如果原密码是my!pass$%&?,编码后变为my%21pass%24%25%26%3F,最终代理串为:
http://myuser:my%21pass%24%25%26%3F@myproxy.local:8080
2. 配置运行器目录的.env文件
进入自托管运行器的根目录,编辑.env文件,添加以下配置(替换为你的实际信息):
http_proxy=http://myuser:编码后的密码@myproxy.local:8080 https_proxy=http://myuser:编码后的密码@myproxy.local:8080 # 添加GHES实例地址到no_proxy,避免代理内部通信 no_proxy=localhost,127.0.0.1,你的GHES域名或IP
3. 重启运行器服务
使配置生效,执行以下命令:
./svc.sh stop ./svc.sh start
验证方法
在工作流中添加测试步骤,验证代理是否正常工作:
steps: - name: 测试代理连接 run: curl -vvv https://example.com
内容的提问来源于stack exchange,提问作者noahshz
相关产品推荐
相关产品推荐

