TinyProxy 上游 IPv6 配置

TinyProxy 上游 IPv6 配置

如何为 IPv6 地址配置 tinyproxy 的上游?

以下不起作用。

Upstream "[2001:xxxx:xxx:xx:xxx:xxxx:xxxx:380f]:8888"

更新

我收到以下错误:Unable to parse config file. Not starting.

答案1

上游的正确语法是:

Upstream http "[2001:xxxx:xxx:xx:xxx:xxxx:xxxx:380f]:8888"

你根本就错过了http

答案2

我试过

upstream http "[fe80::1]:8888"

但我也收到一个错误:

ERROR: Syntax error on line 157
Unable to parse config file. Not starting.

看起来 tiniyproxy(至少版本 1.11.1)不支持 IPv6 地址。

src/conf.c:

#define IP "((([0-9]{1,3})\\.){3}[0-9]{1,3})"
...
#ifdef UPSTREAM_SUPPORT
STDCONF (upstream,
     "(" "(none)" WS STR ")|" \
     "(" "(http|socks4|socks5)" WS \
         "(" USERNAME /*username*/ ":" PASSWORD /*password*/ "@" ")?"
         "(" IP "|" ALNUM ")"
         ":" INT "(" WS STR ")?" ")", handle_upstream),
#endif

正则表达式#definedIP仅匹配数字 IPv4 地址。

我修改了 conf.c 以包含 IPv6 地址:

STDCONF (upstream,
     "(" "(none)" WS STR ")|" \
     "(" "(http|socks4|socks5)" WS \
         "(" USERNAME /*username*/ ":" PASSWORD /*password*/ "@" ")?"
         "(" IP "|" "\\[" IPV6 "\\]" "|" ALNUM ")"
         ":" INT "(" WS STR ")?" ")", handle_upstream),

并且我还从配置语句中删除了双引号:

upstream http [fe80::1]:8888

现在,tinyproxy 启动时不会对其配置文件产生任何抱怨。但我没有检查上游连接是否真的有效,或者是否需要其他修复才能使用 IPv6 地址作为上游代理。我的主要怀疑是,我可能需要从数字 IPv6 地址中删除方括号。

相关内容