找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 15255|回复: 28

go-mips32交叉编译go程序 编译kcptun例子

[复制链接]
发表于 2016-7-30 18:46 | 显示全部楼层 |阅读模式
本帖最后由 hiboyhiboyhiboy 于 2020-1-5 05:20 编辑

一、交叉编译环境配置

来源网友博文: 极路由1s(mt7620a)OpenWrt交叉编译go程序


# 下载go-mips32源
git clone https://github.com/gomini/go-mips32.git
cd go-mips32/src

# 配置GO编译参数
export GOOS=linux
export GOARCH=mips32le

# 执行编译

./make.bash
cd ..

# 创建编译后文件存放文件夹
sudo mkdir /opt/mipsgo

# 复制
sudo cp -R * /opt/mipsgo



如果第一步无报错完成后再继续下一步操作,如果出现问题请Google修复,或更换系统,我用ubuntukylin-15.10编译成功。





二、编译kcptun

源码来源:https://github.com/xtaci/kcptun

# 创建程序目录
mkdir /opt/kcptun
cd /opt/kcptun

# go工程参数配置
export GOPATH=/opt/mipsgo/src/gocode
export GOOS=linux
export GOARCH=mips32le
export GOROOT=/opt/mipsgo
export PATH=/opt/mipsgo/binPATH

# 提前下载kcptun的依赖库
go get -v  golang.org/x/crypto/pbkdf2
go get -v  github.com/xtaci/kcp-go
go get -v  github.com/urfave/cli
go get -v  github.com/hashicorp/yamux
go get -v  github.com/golang/snappy
go get -v  golang.org/x/net/ipv4

# 由于依赖库没mips32le,需要填坑
# go get -v  golang.org/x/net/ipv4
# 运行以上命令时会提示报错:/golang.org/x/net/ipv4/icmp.go:34:2: error: use of undefined type 'sysICMPFilter'
# 参考补丁填坑:https://bugzilla.redhat.com/attachment.cgi?id=1147705&action=diff
# 填坑步骤:gen.go里面添加mips32le的判断。复制一个zsys_linux_mips64le.go文件,改名zsys_linux_mips32le.go
# zsys_linux_mips32.go和zsys_linux_mips32le.go文件里面的64字符也要修改。
# // +build linux,mips32
# // +build linux,mips32le
# 填坑完成后再运行一次:
go get -v  golang.org/x/net/ipv4

# 下载kcptun
go get -v  github.com/xtaci/kcptun/client
go get -v  github.com/xtaci/kcptun/server

# 编译
VERSION=`date -u +%Y%m%d`
LDFLAGS="-X main.VERSION=$VERSION -s -w"
env CGO_ENABLED=0 GOOS=linux GOARCH=mips32le go build -ldflags "$LDFLAGS" -o client_linux_mips  github.com/xtaci/kcptun/client
env CGO_ENABLED=0 GOOS=linux GOARCH=mips32le go build -ldflags "$LDFLAGS" -o server_linux_mips  github.com/xtaci/kcptun/server

# 几秒后出现程序文件,编译成功。我们路由只需要用client。
# 毕竟路由不做server,server主程序要去github下载或参考以上步骤,改export GOARCH=amd64就能自己编译amd64版本。


三、部署服务

# kcptun服务端部署教程
# https://blog.kuoruan.com/102.html
# http://www.cmsky.com/kcptun/

# 服务器:
./server_linux_amd64 -t "服务器IP地址:8388" -l ":554" -key hiboy -mtu 1400 -sndwnd 2048 -rcvwnd 2048 --crypt none --mode fast2 --nocomp  // 转发到服务器的本地8388端口
# crypt:xor/none都不算加密,通过参数 -nocomp 在两端同时设定以关闭压缩。key可以自定义

# kcptun配置客户端参考

# 客户端:
./client_linux_mips -r "服务器IP地址:554" -l ":8388" -key hiboy -mtu 1400 -sndwnd 256 -rcvwnd 2048 --crypt none --mode fast2 --nocomp  -dscp 46   // 监听客户端的本地8388端口
# xor/none都不算加密,通过参数 -nocomp 在两端同时设定以关闭压缩。key可以自定义
# D1双核4线程可以添加 [--conn 4] 参数实现多线程下载

# s-s 客户端配置
# 在SS服务器新建服务端口:8388
# 路由SS配置服务器地址::127.0.0.1
# 路由SS配置服务器端口::8388
# 正确填写你的 s-s 密码,加密方式,协议和混淆方式。
# 两边都启动kcptun、启动SS,测试是否正确运行。

# 已经在华硕固件测试有效,稍后会集成到固件里面的。




sndwnd/rcvwnd 设定参考
sndwnd * mtu 不能超过上行带宽, rcvwnd * mtu 不能超过下行带宽
对延迟不敏感的情况,比如只用于数据传输,可以用MODE_FAST,20ms的内部时钟,默认值
对延迟敏感的情况,可以用FAST2模式,但必须严格注意第一条规则
更多说明移步:https://github.com/xtaci/kcptun





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2恩山币 +2 收起 理由
szkorman + 1 强大的恩山!(以下重复1万次)
elinpr0s + 1 亲,你太牛逼了,走,我请你吃鳇鱼头去~~~

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2016-7-30 18:50 | 显示全部楼层
kcptun占用资源大,建议自行添加守护脚本自动重启程序
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-30 19:13 | 显示全部楼层
我觉得还是在服务端直接装锐速比较好
不过这需要kvm的vps   价格稍高
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-30 19:55 | 显示全部楼层
多谢楼主的分享。等华硕固件的下次更新
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-30 20:02 | 显示全部楼层
docker search go-mips32
pull下来改成mips32le就可以用了

点评

谢谢提供  发表于 2016-7-30 20:55
谢谢提供  发表于 2016-7-30 20:54
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-31 00:38 | 显示全部楼层
在集成之前俺先手动试试先
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-31 01:32 | 显示全部楼层
可惜finalspeed已经不更新不出go了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-31 10:39 | 显示全部楼层
7620能顶得住?有没有兄弟测试一下y2b?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-31 22:46 | 显示全部楼层
太好了,终于有KCPTUN的了,手头有7620A的K2和7621A的D1,正好拿来先学习学习,先折腾起来,回头汇报情况
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-31 23:08 | 显示全部楼层
谢谢!

前段时间用kcptun的时候,绝对是netspeed有力替代者。按楼主的服务器/客户端参数,相对第一次使用kcptun绝对是量的飞越。1000kb/s的线路youtube以前最多就2000kbps,这次竟然可以高达10000kbps.
开心的赶紧拿个1080p来测试。。。可惜高兴得太早,显然电信早就有动态qos机制。没过10分钟,两台搬瓦工的服务器相继阵亡中。。。直接就是Connection timed out (WSAETIMEDOUT) (10060)。。。
这东西平时用来看看420-720p应该还不错。

点评

感谢兄弟测试。7620用kcptun能跑y2b的1080p吗? 另外如果同时开adbyby可以吗?  详情 回复 发表于 2016-8-2 21:36
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-31 23:45 | 显示全部楼层
上面的言论有错误。看起来不像是被电信qos,而是被自己给block掉了,以前不怎么看1080p,设定了每IP 2Gib的流量。。。
哇,12分钟33秒,2Gib就用光了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-7-31 23:50 | 显示全部楼层
昨晚折腾了一晚,还是等H大更新集成再弄了。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-8-1 08:18 来自手机 | 显示全部楼层
如果想多人使用同一个服务器并同时使用Kcptun加速,经博主测试,需要满足以下两个条件: 启动多个 kcptun 服务端,并监听不同的端口,你可以将 start.sh 拷贝一份,然后修改其中的端口; 各 Kcptun 加速不同的 s-s 服务端端口,也就是 s-s 也需要开多端口。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-8-1 08:22 | 显示全部楼层
H大威武!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2016-8-1 08:44 来自手机 | 显示全部楼层
终于等到了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-24 18:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表