diff --git a/build-release.sh b/build-release.sh index 7d9cf49..13cd663 100755 --- a/build-release.sh +++ b/build-release.sh @@ -33,8 +33,15 @@ for os in ${OSES[@]}; do then suffix=".exe" fi - env CGO_ENABLED=0 GOOS=$os GOARCH=amd64 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_${os}_amd64${suffix} github.com/xtaci/kcptun/client - env CGO_ENABLED=0 GOOS=$os GOARCH=amd64 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_${os}_amd64${suffix} github.com/xtaci/kcptun/server + + if [ "$os" == "linux" ];then + env CGO_ENABLED=1 GOOS=$os GOARCH=amd64 go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o client_${os}_amd64${suffix} github.com/xtaci/kcptun/client + env CGO_ENABLED=1 GOOS=$os GOARCH=amd64 go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o server_${os}_amd64${suffix} github.com/xtaci/kcptun/server + else + env CGO_ENABLED=0 GOOS=$os GOARCH=amd64 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_${os}_amd64${suffix} github.com/xtaci/kcptun/client + env CGO_ENABLED=0 GOOS=$os GOARCH=amd64 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_${os}_amd64${suffix} github.com/xtaci/kcptun/server + fi + if $UPX; then upx -9 client_${os}_amd64${suffix} server_${os}_amd64${suffix};fi tar -zcf kcptun-${os}-amd64-$VERSION.tar.gz client_${os}_amd64${suffix} server_${os}_amd64${suffix} $sum kcptun-${os}-amd64-$VERSION.tar.gz @@ -48,8 +55,15 @@ for os in ${OSES[@]}; do then suffix=".exe" fi - env CGO_ENABLED=0 GOOS=$os GOARCH=386 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_${os}_386${suffix} github.com/xtaci/kcptun/client - env CGO_ENABLED=0 GOOS=$os GOARCH=386 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_${os}_386${suffix} github.com/xtaci/kcptun/server + + if [ "$os" == "linux" ];then + env CGO_ENABLED=1 GOOS=$os GOARCH=386 go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o client_${os}_amd64${suffix} github.com/xtaci/kcptun/client + env CGO_ENABLED=1 GOOS=$os GOARCH=386 go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o server_${os}_amd64${suffix} github.com/xtaci/kcptun/server + else + env CGO_ENABLED=0 GOOS=$os GOARCH=386 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_${os}_amd64${suffix} github.com/xtaci/kcptun/client + env CGO_ENABLED=0 GOOS=$os GOARCH=386 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_${os}_amd64${suffix} github.com/xtaci/kcptun/server + fi + if $UPX; then upx -9 client_${os}_386${suffix} server_${os}_386${suffix};fi tar -zcf kcptun-${os}-386-$VERSION.tar.gz client_${os}_386${suffix} server_${os}_386${suffix} $sum kcptun-${os}-386-$VERSION.tar.gz @@ -58,25 +72,25 @@ done # ARM ARMS=(5 6 7) for v in ${ARMS[@]}; do - env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=$v go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_linux_arm$v github.com/xtaci/kcptun/client - env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=$v go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_linux_arm$v github.com/xtaci/kcptun/server + env CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=$v go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o client_linux_arm$v github.com/xtaci/kcptun/client + env CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=$v go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o server_linux_arm$v github.com/xtaci/kcptun/server if $UPX; then upx -9 client_linux_arm$v server_linux_arm$v;fi tar -zcf kcptun-linux-arm$v-$VERSION.tar.gz client_linux_arm$v server_linux_arm$v $sum kcptun-linux-arm$v-$VERSION.tar.gz done # ARM64 -env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_linux_arm64 github.com/xtaci/kcptun/client -env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_linux_arm64 github.com/xtaci/kcptun/server +env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o client_linux_arm64 github.com/xtaci/kcptun/client +env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o server_linux_arm64 github.com/xtaci/kcptun/server if $UPX; then upx -9 client_linux_arm64 server_linux_arm64*;fi tar -zcf kcptun-linux-arm64-$VERSION.tar.gz client_linux_arm64 server_linux_arm64 $sum kcptun-linux-arm64-$VERSION.tar.gz #MIPS32LE -env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_linux_mipsle github.com/xtaci/kcptun/client -env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_linux_mipsle github.com/xtaci/kcptun/server -env CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o client_linux_mips github.com/xtaci/kcptun/client -env CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -ldflags "$LDFLAGS" -gcflags "$GCFLAGS" -o server_linux_mips github.com/xtaci/kcptun/server +env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o client_linux_mipsle github.com/xtaci/kcptun/client +env CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o server_linux_mipsle github.com/xtaci/kcptun/server +env CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o client_linux_mips github.com/xtaci/kcptun/client +env CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -ldflags "$LDFLAGS_LINUX" -gcflags "$GCFLAGS" -o server_linux_mips github.com/xtaci/kcptun/server if $UPX; then upx -9 client_linux_mips* server_linux_mips*;fi tar -zcf kcptun-linux-mipsle-$VERSION.tar.gz client_linux_mipsle server_linux_mipsle diff --git a/client/config.go b/client/config.go index a5d3ed4..5e01ed3 100644 --- a/client/config.go +++ b/client/config.go @@ -34,6 +34,7 @@ type Config struct { SnmpLog string `json:"snmplog"` SnmpPeriod int `json:"snmpperiod"` Quiet bool `json:"quiet"` + TCP bool `json:"tcp"` } func parseJSONConfig(config *Config, path string) error { diff --git a/client/main.go b/client/main.go index ad3a9a5..b9c0abb 100644 --- a/client/main.go +++ b/client/main.go @@ -1,3 +1,5 @@ +// +build !linux,amd64 + package main import ( diff --git a/go.mod b/go.mod index 6133ab7..d555dde 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,9 @@ module github.com/xtaci/kcptun require ( + github.com/coreos/go-iptables v0.4.1 // indirect github.com/golang/snappy v0.0.1 + github.com/google/gopacket v1.1.17 // indirect github.com/klauspost/cpuid v1.2.1 // indirect github.com/klauspost/reedsolomon v1.9.2 // indirect github.com/pkg/errors v0.8.1 @@ -11,6 +13,7 @@ require ( github.com/urfave/cli v1.20.0 github.com/xtaci/kcp-go v5.4.2+incompatible github.com/xtaci/smux v1.3.3 + github.com/xtaci/tcpraw v1.1.3 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 golang.org/x/net v0.0.0-20190607181551-461777fb6f67 // indirect golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae // indirect diff --git a/go.sum b/go.sum index 6a60fc7..5e96766 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,9 @@ +github.com/coreos/go-iptables v0.4.1 h1:TyEMaK2xD/EcB0385QcvX/OvI2XI7s4SJEI2EhZFfEU= +github.com/coreos/go-iptables v0.4.1/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/gopacket v1.1.17 h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbBY= +github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= github.com/klauspost/cpuid v1.2.0 h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= @@ -91,6 +95,8 @@ github.com/xtaci/smux v1.3.2 h1:8NsGbxBW6oSaeLu5E6V8AmklZm6EhBz7BeCOU3Zdhwc= github.com/xtaci/smux v1.3.2/go.mod h1:f+nYm6SpuHMy/SH0zpbvAFHT1QoMcgLOsWcFip5KfPw= github.com/xtaci/smux v1.3.3 h1:+vnzZHTLGHrj+LzUZEkKmvu4KkG7fj4jwMPqhawvErg= github.com/xtaci/smux v1.3.3/go.mod h1:f+nYm6SpuHMy/SH0zpbvAFHT1QoMcgLOsWcFip5KfPw= +github.com/xtaci/tcpraw v1.1.3 h1:9kYm8HlXn0G/bNH7Xkm7Ypn/w17vnl/JfDQxBWueUAY= +github.com/xtaci/tcpraw v1.1.3/go.mod h1:dKyZ2V75s0cZ7cbgJYdxPvms7af0joIeOyx1GgJQbLk= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576 h1:aUX/1G2gFSs4AsJJg2cL3HuoRhCSCz733FE5GUSuaT4= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/server/config.go b/server/config.go index b3c7ea6..5858ccb 100644 --- a/server/config.go +++ b/server/config.go @@ -32,6 +32,7 @@ type Config struct { SnmpPeriod int `json:"snmpperiod"` Pprof bool `json:"pprof"` Quiet bool `json:"quiet"` + TCP bool `json:"tcp"` } func parseJSONConfig(config *Config, path string) error { diff --git a/server/main.go b/server/main.go index f68dfff..a3afcd6 100644 --- a/server/main.go +++ b/server/main.go @@ -1,3 +1,5 @@ +// +build !linux,amd64 + package main import (