Shadowsocks-windows: kcptun plugin issue

Created on 28 Nov 2019  ·  9Comments  ·  Source: shadowsocks/shadowsocks-windows

环境: 4.1.8.0 on Windows 7
官方 KCPTUN 最新版本
墙外 KCPTUN 服务端侦听 UDP 2018 端口

本地 KCPTUN 在 20180 端口

SS 配置如下:
image
本地 kcp 配置如下:
image

后台报错:
image

四个环境变量, SS_REMOTE_HOST, SS_REMOTE_PORT, SS_LOCAL_HOST, SS_LOCAL_PORT 也设置了。

SS 如果不配置插件,直接走本地命令行启动的 kcp 就可以工作。
这到底是要怎么配置啊?
在 Mac 上的 NG 版本,非常简单, 就是选项里把参数写进去就可以,为什么这个还要去配置环境变量? 配了环境变量也搞不定。

All 9 comments

Please specify the issue, And upload logs.

命令行跑起来 kcptun 然后,ss 配 localhost:20180 , 就能正常访问 Google 了。
image

开个任务管理器,看看实际传递的命令行参数对不对

谢楼上给的文档, 确实是第一次看到文档。 重新按照文档操作, 现在是 ss_local_port 这个变量没传入。
SS 配置的插件参数:
-l %SS_LOCAL_HOST%:%SS_LOCAL_PORT% -r %SS_REMOTE_HOST%:%SS_REMOTE_PORT% --key xxxx --crypt aes-128 --mode fast
实际任务管理器看到的 是 17475 ,这个好像之前也有人反映这个情况。
image

环境变量配置:

image

感觉和环境变量也没啥关系, 因为如果把插件功能关掉, 直接在命令行启动
./client_windows_amd64.exe -c xxx.json
看日志, 都能读到 json 文件里 kcp 正确的启动参数
至少 kcp 层的通信 肯定是没问题的。

用插件的方式,也可以看到日志里, 也是正确读到了json 文件里的配置的。

墙外服务器上敲入命令:
root@vpn:~# tcpdump -i eth0 udp port 2018 -vv -X
UDP 报送回去 checksum 错

image

本地通信端口(SS-KCP)是随机的,这个没问题。

总算搞定了, 好开心啊。 总结一下:
第一个问题是 对环境变量的 理解, 以为是自己要去设置环境变量, 其实不是那样的, 就是在插件参数里写:
-l %SS_LOCAL_HOST%:%SS_LOCAL_PORT% -r %SS_REMOTE_HOST%:%SS_REMOTE_PORT% -c xxx.json
不要把上面的四个环境变量做任何的替换!!!也不需要去手工在操作系统里设置环境变量。 因为那个是程序里自己会赋值的,在Mac 版本里, 我看到插件下的 kcptun 实际是一个 shell 就是对这 4 个变量做了处理,再传给 kcp 真正的那个二进制客户端程序。

第二个问题是 xxx.json 文件里,不要指定 "localaddr": ":20180",,去掉这一行。

chenshaoju 的一句话,点醒梦中人,因为是随机的,所以不要去指定, 如果手工指定了, 那就是两者之间的通信会按照这个指定的端口去通信,当然就不可以了。

另外我的 kcp 配置 设置了 log , 放 logs 目录下, 要手工创建 logs 目录的,否则也会连接不上。
又: 相信 kcp 配置的 remoteaddr 其实也是可以去掉的, 因为那个是通过 -r 传入,两者其实是冲突的,但是最后应该是以 -c xxx.json 里的为准。

插件命令行参数有环境变量名的情况下,环境变量名会由ss替换成实际的值。

Was this page helpful?
0 / 5 - 0 ratings