今天发现 Shadowsocks Windows 版更新了 3.0 版本,看版本号是个大更新,果断更新后遇到了两次 bug,把解决方法记录如下。

闪退

和往常一样,下载好新版 Shadowsocks 之后,就把旧版本的配置文件复制到新版目录下,但是运行时崩溃自动退出。删除配置文件后手动添加,不再崩溃。对比配置文件后发现格式和内容略有变化,问题应该就出在这里。

0x80004005 无效指针地址错误

闪退问题解决后,又发现无法打开代理的网页。查看日志发现提示错误:

System.Net.Sockets.SocketException (0x80004005): 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。
在 System.Net.Sockets.Socket.get_RemoteEndPoint()
在 Shadowsocks.Controller.TCPHandler.ConnectCallback(IAsyncResult ar)

在 Github 上寻找相关 issues,找到了以下解决方法,测试有效。
命令提示符中运行以下命令,重启即可。

netsh interface ipv4 reset
netsh interface ipv6 reset
netsh winsock reset