Before firing issue, make sure you figured out the following common questions.
PLEASE DO SEARCH FIRST.
telnet target port successful?-nocomp, -datashard, -parityshard, -key, -crypt _must be the same_ on both side.楼主你好!我配置好以后windows客户端有stream open和steam close的显示但是会出现如下错误:
2016/08/16 11:18:14 [ERR] yamux: Failed to read header: broken pipe
2016/08/16 11:18:14 [ERR] yamux: keepalive failed: i/o deadline reached
服务器上看不到任何连接的信息(stream open和steam close都没有,只有初始化的信息)。
此外,windows下telnet 服务器554端口显示无法打开连接,相同网络下Android终端telnet服务器554端口显示connection refused。但是使用与windows客户端相同的配置参数,在相同的网络下安卓版kcptun和安卓版shadowsocks配合能够正常使用。电脑上shadowsocks客户端填上安卓版kcptun的ip和端口也能正常使用。同时,windows下shadowsocks直连服务器也正常使用。更换554端口值也不行。
服务器参数:./server_linux_amd64 -l :554 -t 127.0.0.1:8081 -key 密码 -mtu 1350 -crypt aes -nocomp -dscp 46 -sndwnd 1024 -rcvwnd 1024 -mode fast2
客服端参数:client_windows_amd64.exe -l :8989 -r 服务器ip:554 -key 密码 -mode fast2 -mtu 1350 -sndwnd 64 -rcvwnd 128 -conn 2 -dscp 46 -nocomp -crypt aes
服务器shadowsocks端口:8081
客服端shadowsocks:ip填127.0.0.1,端口填8989
参数没有问题,自己排查windows防火墙, 8081监听IP等。
telnet不通端口好像不影响连接是吧?因为Android上面telnet不通却能正常连上。
自己排查防火墙,IP地址,绑定地址等。
我的windows没有安装杀毒软件,把自带的防火墙关了也不行。
I don't know .
看来得放弃了。
换个端口
服务器上的端口也换过了(从554换成其他较大的端口),还是不行。这两天在公司和家里反复实验,还是不成功。以前在家里路由器客户端kcptun成功过,后来再试又不行了。公司和家里安卓上面的kcptun一直都是秒连。真不知道什么原因导致windows无法向服务器发包。快绝望了!
那你只能使出重装系统这个大招了。
@hbxntsxw 试试把kcptun客户端放到windows高级防火墙里面的允许通信列表试试,当然也有可能是你的电脑网卡的MAC地址被光猫的防火墙给封掉了……
@hbxntsxw 把kcp服务器端口设置成10000以上的高位端口试试,关掉客户端的conn参数,在服务器和客户端两边关掉kcp的加密,模式换到normal(对于绝大多数情况normal真的够了),再换个window的ss客户端试试,我的ss客户端是shadowsocks-qt5,然后再试试
尝试重置winsock或者其他网络相关设置。
谢谢大家的回答,今天晚上回来发现竟然可以用了。不知道为什么,昨天倒是升级了最新的windows 10预览版系统。
我用的客户端环境是ArchLinux AMD64,
kcptun_client -r "1.1.1.1:995" -mode fast2 -mtu 1400 -sndwnd 256 -rcvwnd 1024 -dscp 46
我用nc查看995的端口是成功的
nc -vuz 1.1.1.1 995
Connection to 1.1.1.1 995 port [udp/pop3s] succeeded!
然后我用curl验证连通性,一直没有成功过,80/995/554/3389都试过了,443是SS在占用,就没试。
curl --socks5 127.0.0.1:12948 cip.cc
客户端有显示数据,服务器也有显示数据
2016/08/17 02:41:22 stream opened
2016/08/17 02:46:22 stream closed
我抓了包看了一下,一直有UDP的数据,就是通讯不成功,但是Android配置了后,下载是飞快。
另外我在WinXp的虚拟机下用客户端连接,也没有成功。
玄学?看下是不是client的监听端口被占用了
@xtaci @testcaoy7 @bubbless
今天再确认了一下,终于发现原因了!是参数排列顺序的原因:
客户端能连接的参数是这样的:client_windows_amd64.exe -l :1081 -r 服务器ip:554 -key 密码 -mtu 1350 -crypt aes -nocomp -dscp 46 -sndwnd 64 -rcvwnd 128 -mode fast2
不能连接的参数是这样的:client_windows_amd64.exe -l :1081 -r 服务器ip:554 -key 密码 -mode fast2 -mtu 1350 -sndwnd 64 -rcvwnd 128 -dscp 46 -nocomp -crypt aes
这真是奇怪了!
PS:不好意思,经过最终确认,是我密码写错了,把0写成了o,耽误大家时间了。跟参数排列顺序无关。谢谢大家!
What the fuck?
@xtaci 大神!不好意思,经过最终确认,是我密码写错了,把0写成了o,耽误大家时间了。跟参数排列顺序无关。谢谢大家!
@xtaci 我密码是用的默认的,就算参数用一个 -mode fast2 依旧无法使用。
@wxyzh 监听端口被占用客户端是无法启动的。
贴一下配置求楼上们指导:
服务端:
./server_linux_amd64 -l :20086 -t 127.0.0.1:8388 -key test1 -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode normal
尝试过将服务端IP换成外网IP,不可行。。。
客户端:
./client_darwin_amd64 -l :9999 -r server_ip:20086 -key test1 -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode normal
本地 telnet server_ip 20086 不通,Connection refused,用 nc -vuz server_ip 20086 可连接(Connection to server_ip port 20086 succeeded!)
试了 mode 换成 fast2 也不好使。。。
另外贴一下错误信息:
2016/08/25 14:37:58 conn: 1
2016/08/25 14:38:11 stream opened
2016/08/25 14:38:58 [ERR] yamux: keepalive failed: i/o deadline reached
2016/08/25 14:38:58 [ERR] yamux: Failed to read header: broken pipe
单用 ss 好用,用 finalspeed/xsocks 也好使,求指导
_PS: 弄好了,原因是服务器 ufw 只打开了 20086 的 UDP,把 TCP 也打开就好了_
@xtaci @hbxntsxw @se77en
经别人点播才发现真正的原因,就像原理图上写的一样,

client_linux_amd64 所监听的是UDP端口,需要再把UDP转换成TCP的数据(client不就是干这个的么?),反正我直接使用client监听的端口是无法工作。
client_linux_amd64 -r "1.2.3.4:3306" -l ":1080" -mtu 1400 -sndwnd 256 -rcvwnd 1024 -mode fast -key naive -autoexpire 60 -crypt salsa20 -dscp 46
我是直接用1080端口去通讯 curl --socks5 127.0.0.1:1080 cip.cc
本地UDP无法打开
{
"server":"127.0.0.1",
"server_port":1080,
"local_address": "127.0.0.1",
"local_port":8080,
"password":"passwd",
"timeout":300,
"method":"chacha20",
"fast_open": false,
"workers": 1
}
现在8080端口就是socks5, curl --socks5 127.0.0.1:8080 cip.cc
我前面一直以为kcptun client就完成了encrypted udp to tcp的工作,貌似不是啊,导致我很久的时间没能在PC上体验1080P的快感。希望能再README上做一下说明,谢谢。
我今天遇到类似的问题,不过正好相反,windows端可以正常访问kcptun,快的一笔,但是安卓端却完全无法访问,请问一下大佬们是什么原因………
其实我原来一直用得好好的,不过搬瓦工不知道怎么回事ip被墙了,所以一直吃灰到现在,今天我突然想起来不是还有IPv6地址么,于是用ipv6地址试了试,发现没被墙,所以我感慨重新配了一次ss和kcptun,不过这下发现电脑端可以访问,手机端无法访问,请教一下怎么回事?