gfreezy / seeker

通过使用 tun 来实现透明代理。实现了类似 surge 增强模式与网关模式。
Apache License 2.0
34 stars 5 forks source link

启动报错 #153

Closed cloudwu closed 1 year ago

cloudwu commented 1 year ago
thread 'main' panicked at 'index out of bounds: the len is 1 but the index is 1', config/src/lib.rs:204:15

配置文件如下

verbose: true
dns_start_ip: 10.0.0.10
# 可以指定多个 DNS 服务器,如果不指定则使用系统默认的 DNS 服务器。一般最好指定,否则Wi-Fi切换的时候可能会出现 DNS 服务器无法访问的问题。
# 一般 DHCP 获取 IP 的时候会自动获取 DNS 服务器,切换 Wi-Fi 的时候,DNS 服务器也会发生变化。
dns_servers:
  - 8.8.8.8:53
  - 114.114.114.114:53
  - tcp://114.114.114.114:53
dns_timeout: 1s
tun_bypass_direct: true  # 直连的域名直接返回真实IP,不走tun
# redir 模式使用 iptable 的 redirect 功能: iptables -t nat -A PREROUTING -d 11.0.0.0/16 -p tcp -j REDIRECT --to-ports 1300
# redir 模式下只支持 tcp 流量。默认使用 tun 模式。特殊设备不支持 tun 的情况,可以使用 redir 模式。
redir_mode: false
tun_name: tun0
tun_ip: 10.0.0.1
tun_cidr: 10.0.0.0/16
dns_listen: 0.0.0.0:53
gateway_mode: false
ping_timeout: 2s
# probe_timeout 时间内如果可以建立 TCP 连接则直连(443端口会额外建立 SSL 连接),否则走代理。不要调的太低,国内有些网站会有很长的 SSL 握手时间。
# 如果目标端口为 443,TCP 连接的超时时间为 probe_timeout, SSL 连接超时时间也为 probe_timeout,总的超时时间为 probe_timeout * 2;
# 如果目标端口不为 443,TCP 连接的超时时间为 probe_timeout。
probe_timeout: 200ms
connect_timeout: 1s
read_timeout: 30s
write_timeout: 5s
# geoip 数据库路径,如果使用相对路径,相对于可执行文件的路径。默认会搜索可执行文件同级目录下的 geoip.mmdb 文件
# 可以从 https://github.com/Hackl0us/GeoIP2-CN 下载 mmdb 格式的文件
geo_ip: Country.mmdb

max_connect_errors: 2  # ss 服务器重试次数,到达重试次数后会自动选择下一个最快的服务器
ping_urls:
  - host: www.facebook.com
    port: 80
    path: /
  - host: www.youtube.com
    port: 80
    path: /
  - host: twitter.com
    port: 80
    path: /

servers:
 - name: socks5
   addr: 127.0.0.1:1080
   protocol: Socks5  # Https or Http or Socks5 or Shadowsocks

rules:
 # - 'DOMAIN,audio-ssl.itunes.apple.com,DIRECT'
 # - 'DOMAIN,gspe1-ssl.ls.apple.com,REJECT'
 # - 'DOMAIN-SUFFIX,aaplimg.com,DIRECT'
 # - 'DOMAIN-SUFFIX,apple.co,DIRECT'
 # - 'DOMAIN-KEYWORD,bbcfmt,PROXY'
 # - 'DOMAIN-KEYWORD,uk-live,PROXY'
 # - 'DOMAIN-SUFFIX,snssdk.com,DIRECT'
 # - 'DOMAIN-SUFFIX,toutiao.com,PROBE'
 # - 'IP-CIDR,19.23.212.0/16,PROXY'
 # - 'IP-CIDR,19.23.21.0/16,PROBE'
  - 'GEOIP,CN,DIRECT'
  - 'MATCH,PROBE'
gfreezy commented 1 year ago

这个报错是 tun_cidr 缺少 / 分隔符,但是粘贴的配置文件是正常的。我保存下来测试也是没问题的。

tun_cidr: 10.0.0.0/16

有没有可能实际运行的配置文件的 / 是中文或者有不可见字符之类的。

cloudwu commented 1 year ago

我删了几行和我的机场 ip 有关的配置,可能是那里配错了。晚上再试试。

另外,建议加强配置解析的错误信息(行号/具体原因等),这对于用户自己排错有帮助。可能还需要一个只校验配置文件的命令行选项。