Matrix Synapse URL预览失败 – netaddr.core.AddrFormatError -Solved

平台:Debian 9
matrix/突触版本:0.22.1-1

我首先安装了必要的依赖关系:

$ pip安装lxml
$ pip install netaddr
$ pip安装扭曲
$ sudo apt install libxslt1-dev

然后,我编辑/etc/matrix-synapse/homeserver.yaml,以便:

url_preview_enabled: true url_preview_ip_range_blacklist: - '127.0.0.0/8' - '209.58.160.224/32' - 'fc00::/7' 

由于我的服务器只有一个外部IP,没有内部子网,我认为这将是好的。

突触服务,然后不断重新启动,并产生这个错误:

 Sep 30 01:44:12 hostname python[29155]: config["url_preview_ip_range_blacklist"] Sep 30 01:44:12 hostname python[29155]: File "/usr/lib/python2.7/dist-packages/netaddr/ip/sets.py", line 121, in __init__ Sep 30 01:44:12 hostname python[29155]: for cidr in cidr_merge(mergeable): Sep 30 01:44:12 hostname python[29155]: File "/usr/lib/python2.7/dist-packages/netaddr/ip/__init__.py", line 1549, in cidr_merge Sep 30 01:44:12 hostname python[29155]: cidr = IPNetwork(ip) Sep 30 01:44:12 hostname python[29155]: File "/usr/lib/python2.7/dist-packages/netaddr/ip/__init__.py", line 933, in __init__ Sep 30 01:44:12 hostname python[29155]: raise AddrFormatError('invalid IPNetwork %s' % addr) Sep 30 01:44:12 hostname python[29155]: netaddr.core.AddrFormatError: <exception str() failed> Sep 30 01:44:12 hostname systemd[1]: matrix-synapse.service: Main process exited, code=exited, status=1/FAILURE 

我也试过这些,但他们都产生了同样的错误:

 url_preview_ip_range_blacklist: - '127.0.0.0/8' - '209.58.160.224/32' - 'fc00::/7' url_preview_ip_range_blacklist: - '127.0.0.0/8' - '209.58.160.224/32' #- 'fc00::/7' url_preview_ip_range_blacklist: - '127.0.0.0/8' #- '209.58.160.224/32' #- 'fc00::/7' 

更多的configuration失败,同样的错误:

 url_preview_ip_range_blacklist: - '127.0.0.0/8' # - '209.58.160.224/32' # - 'fc00::/7' url_preview_ip_range_blacklist: - '127.0.0.0' # - '209.58.160.224/32' # - 'fc00::/7' url_preview_ip_range_blacklist: - '127.0.0.0/8' - '209.58.160.224' # - 'fc00::/7' 

最终的解决办法是按照Max的build议更改引号:

这工作,最后的语法是:

 url_preview_enabled: true url_preview_ip_range_blacklist: - '127.0.0.0/8' - '209.58.160.224/32' - 'fc00::/7' 

有些引用字符不是常规字符,而是一个“嘀嗒”一个: ' vs ' ,这使得parsing失败。