“FAQ:SS客户端”的版本间差异
跳到导航
跳到搜索
(→FAQ) |
(→关于文件) |
||
第22行: | 第22行: | ||
* '''ss_privoxy.log''' : Privoxy的日志 | * '''ss_privoxy.log''' : Privoxy的日志 | ||
* '''sysproxy.exe''' : 用于系统代理的代理设置程序 | * '''sysproxy.exe''' : 用于系统代理的代理设置程序 | ||
== 关于端口被占用 == | |||
记:又又又一次遇到端口不能使用(被占用、系统保留端口)【2020/11/18 17:28:59】<br/> | |||
之前使用1080端口,在某次软件更新还是系统更新之后,提示改端口为系统保留端口,查找占用进程无果的情况下,改为使用10800;昨天更新IDM并重启系统之后,提示10800被占用,改为1080提示系统保留端口,所以又又又在网上找了一圈解决方案…… | |||
排查占用(端口1080)的进程: | |||
# 使用“<syntaxhighlight lang="bash" inline>netstat -aon|findstr "1080"</syntaxhighlight>”查找被占用端口对应的 PID; | |||
#: [[File:1查询占用端口的进程号.jpg|400px]] | |||
# 查看PID对应的进程(或服务); | |||
#: [[File:2根据PID查看进程.jpg|400px]] | |||
#(查看哪一个chrome进程占用了端口,“shift + esc”) | |||
#: [[File:3查看chrome中使用端口的任务.jpg|400px]] | |||
关闭了chrome进程数,以为能好使,但是……仍然提示“端口是系统保留端口”,并且找不到占用的进程: | |||
<pre> | |||
系统保留端口在netstat是看不到有其他程序占用的,但你就是用不了。。。 | |||
</pre> | |||
关于此问题,shadowsocks-windows项目的[https://github.com/shadowsocks/shadowsocks-windows/issues/1835 端口禁止访问 #1835]有描述: | |||
<pre> | |||
这个问题并不是端口被占用,通过 netstat 里找不到占用这个端口的程序。 | |||
实际上,这个错误对应的 last-error 是 10013 (WSAEACCESS),权限不足。 | |||
根据2018年2月13日发布的 KB4074588 里的 known issue,这个补丁会调整操作系统的 reserve port ranges,可以通过运行 netsh interface ipv4 show excludedportrange protocol=tcp 查看。 | |||
在我自己的环境里,1025 ~ 1124 都被系统强制保留了,所以其他应用程序无法监听在这个端口。 | |||
workaround 要选取的端口也只能避开这些保留端口。 | |||
最后建议:ss 可以做一下 10013(WSAEACCES) 和 10048(WSAEADDRINUSE)的分类处理。毕竟看起来之后这个地方会出现坑不会少。 | |||
注1:我的系统是最新的1809,一直没有这个问题,直到上周安装了 SONY 的 Digital Paper App 附带的驱动之后触发了这个问题。另一台 surface pro 4 也装了 Digital Paper App,但是没有出现这个问题,不确定是不是因为 sp4 使用的是 Windows 10 Home 的关系。 | |||
注2:尝试使用 netsh interface ipv4 delete excludedportrange ... 会提示 access is denied,目前找不到可以认为调整的方法。 | |||
</pre> | |||
<pre> | |||
分享一下曾经找到的解决办法 | |||
由于hyper-v保留了这些端口,所以需要先关闭hyper-v,保留想要保留的端口,再开启hyper-v功能 | |||
Disable hyper-v (which will required a couple of restarts) | |||
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V | |||
When you finish all the required restarts, reserve the port you want so hyper-v doesn't reserve it back | |||
netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=2 | |||
netsh int ipv4 add excludedportrange protocol=tcp startport=1099 numberofports=1 | |||
netsh int ipv4 add excludedportrange protocol=tcp startport=3306 numberofports=1 | |||
3.Re-Enable hyper-V (which will require a couple of restart) | |||
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All | |||
</pre> | |||
所以: | |||
# 不要选用系统保留的端口; | |||
# 对于非保留端口被占用,排查并结束对于进程即可; | |||
* 使用“<syntaxhighlight lang="bash" inline>netsh interface ipv4 show excludedportrange protocol=tcp</syntaxhighlight>”查看tcp的端口排除范围: | |||
*: [[File:tcp端口排除范围.jpg|400px]] | |||
== FAQ == | == FAQ == |
2020年11月18日 (三) 17:57的版本
安装
Shadowsocks的项目链接在shadowsocks-windows。
- 下载Shadowsocks-4.1.10.0.zip,并解压到本地Shadowsocks文件夹内(
D:\Program Files (x86)\Shadowsocks
) - 启动Shadowsocks.exe会自动加载其他内容
- 覆盖备份的配置文件gui-config.json,然后重启Shadowsocks
备份
需要备份的内容:code
gui-config.json
:(D:\Program Files (x86)\Shadowsocks
)Shadowsocks使用的服务器配置文件mgwz.dll
:(D:\Program Files (x86)\Shadowsocks\ss_win_temp
)Privoxy所需的动态库(不会自动生成或下载?)
其余内容会在Shadowsocks启动时自动生成,gfwlist.txt
和pac.txt
会在从GFWList更新本地PAC时生成。
关于文件
libcrypto-1_1.dll : 加密库(没这个)- libsscrypto.dll : 加密库
- mgwz.dll : Privoxy所需的动态库
- privoxy_<随机数>.conf : Privoxy配置文件
- shadowsocks.log : SS本身的日志
- ss_privoxy.exe : Privoxy主程序
- ss_privoxy.log : Privoxy的日志
- sysproxy.exe : 用于系统代理的代理设置程序
关于端口被占用
记:又又又一次遇到端口不能使用(被占用、系统保留端口)【2020/11/18 17:28:59】
之前使用1080端口,在某次软件更新还是系统更新之后,提示改端口为系统保留端口,查找占用进程无果的情况下,改为使用10800;昨天更新IDM并重启系统之后,提示10800被占用,改为1080提示系统保留端口,所以又又又在网上找了一圈解决方案……
排查占用(端口1080)的进程:
关闭了chrome进程数,以为能好使,但是……仍然提示“端口是系统保留端口”,并且找不到占用的进程:
系统保留端口在netstat是看不到有其他程序占用的,但你就是用不了。。。
关于此问题,shadowsocks-windows项目的端口禁止访问 #1835有描述:
这个问题并不是端口被占用,通过 netstat 里找不到占用这个端口的程序。 实际上,这个错误对应的 last-error 是 10013 (WSAEACCESS),权限不足。 根据2018年2月13日发布的 KB4074588 里的 known issue,这个补丁会调整操作系统的 reserve port ranges,可以通过运行 netsh interface ipv4 show excludedportrange protocol=tcp 查看。 在我自己的环境里,1025 ~ 1124 都被系统强制保留了,所以其他应用程序无法监听在这个端口。 workaround 要选取的端口也只能避开这些保留端口。 最后建议:ss 可以做一下 10013(WSAEACCES) 和 10048(WSAEADDRINUSE)的分类处理。毕竟看起来之后这个地方会出现坑不会少。 注1:我的系统是最新的1809,一直没有这个问题,直到上周安装了 SONY 的 Digital Paper App 附带的驱动之后触发了这个问题。另一台 surface pro 4 也装了 Digital Paper App,但是没有出现这个问题,不确定是不是因为 sp4 使用的是 Windows 10 Home 的关系。 注2:尝试使用 netsh interface ipv4 delete excludedportrange ... 会提示 access is denied,目前找不到可以认为调整的方法。
分享一下曾经找到的解决办法 由于hyper-v保留了这些端口,所以需要先关闭hyper-v,保留想要保留的端口,再开启hyper-v功能 Disable hyper-v (which will required a couple of restarts) dism.exe /Online /Disable-Feature:Microsoft-Hyper-V When you finish all the required restarts, reserve the port you want so hyper-v doesn't reserve it back netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=2 netsh int ipv4 add excludedportrange protocol=tcp startport=1099 numberofports=1 netsh int ipv4 add excludedportrange protocol=tcp startport=3306 numberofports=1 3.Re-Enable hyper-V (which will require a couple of restart) dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
所以:
- 不要选用系统保留的端口;
- 对于非保留端口被占用,排查并结束对于进程即可;
FAQ
Shadowsocks错误:端口被占用
- Shadowsocks自启动时出现该问题,先排除其他服务或应用占用端口,确认由Shadowsocks导致
解决,重装Shadowsocks(?或删除并重新设置启动项?):
- 删除Windows启动项中的Shadowsocks;
- 备份Shadowsocks内容,并重新安装;
- 右键Shadowsocks勾选“开机启动”
如未解决,参考GitHub中项目的问题页:
Shadowsocks错误:系统保留端口
如未解决,参考GitHub中项目的问题页:
修改Shadowsocks本地端口
出现以上两个错误:“端口被占用”、“系统保留端口”,最快捷的方式就是修改ss使用的本地端口。
修改之后还需确认软件的代理方式:
- Windows系统代理:“设置”->“网络和Internet”->“代理”中,选用“手动设置代理服务器”,并设置
地址:http://localhost,端口:10800(修改的端口)
- Chrome的ProxySwitchyOmega插件:在“情景模式”->“Shadowsocks”中,设置
代理协议:SOCKS5,地址:http://localhost,端口:10800(修改的端口)
- 应用软件的代理设置:
- 使用“System Proxy Setting”,即“Windows系统代理”的设置
- 使用“Custom Proxy”,设置:
代理协议:SOCKS5,地址:http://localhost,端口:10800(修改的端口)