Giter VIP home page Giter VIP logo

wireproxy's People

Contributors

dependabot[bot] avatar jbruechert avatar jdek avatar johanar avatar juev avatar kubrickfr avatar mikedacre avatar pufferffish avatar testwill avatar villepeh avatar waybackarchiver avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wireproxy's Issues

error loading module requirements

go: finding github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a
go: finding github.com/gogo/protobuf v1.2.1
go: finding github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55
go: finding github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639
go: finding github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2
go: finding github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02
go: finding github.com/spf13/pflag v1.0.5
go: finding github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601
go: finding github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260
go: finding github.com/opencontainers/image-spec v1.0.1
go: finding golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
go: finding golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
go: finding go.uber.org/atomic v1.7.0
go: finding golang.org/x/sys v0.0.0-20190422165155-953cdadca894
go: finding golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
go: finding github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5
go: finding github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56
go: finding github.com/sirupsen/logrus v1.0.6
go: finding github.com/Azure/go-autorest/autorest/mocks v0.4.1
go: finding github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9
go: finding golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1
go: finding golang.org/x/net v0.0.0-20190522155817-f3200d17e092
go: finding golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941
go: finding github.com/chzyer/logex v1.1.10
go: finding github.com/golang/protobuf v1.3.2
go: finding cloud.google.com/go v0.38.0
go: finding github.com/go-logr/logr v0.2.0
go: finding k8s.io/apimachinery v0.16.13
go: finding github.com/json-iterator/go v1.1.7
go: finding github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
go: finding github.com/google/uuid v1.0.0
go: finding golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9
go: finding github.com/google/btree v1.0.0
go: finding github.com/konsorten/go-windows-terminal-sequences v1.0.2
go: finding github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a
go: finding golang.org/x/mod v0.3.0
go: finding github.com/mattn/go-shellwords v1.0.3
go: finding golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975
go: finding github.com/prometheus/client_golang v1.0.0
go: finding github.com/google/go-cmp v0.2.0
go: finding golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a
go: finding github.com/google/uuid v1.1.1
go: finding github.com/googleapis/gax-go/v2 v2.0.4
go: finding golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5
go: finding github.com/urfave/cli v1.22.1
go: finding github.com/Azure/go-autorest/autorest/date v0.3.0
go: finding github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1
go: finding github.com/gogo/googleapis v1.2.0
go: finding github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa
go: finding github.com/bgentry/speakeasy v0.1.0
go: finding google.golang.org/genproto v0.0.0-20210312152112-fc591d9ea70f
go: finding golang.org/x/time v0.0.0-20181108054448-85acf8d2951c
go: finding github.com/Azure/go-autorest/autorest/adal v0.5.0
go: finding github.com/jstemmer/go-junit-report v0.9.1
go: finding golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e
go: finding go.uber.org/zap v1.10.0
go: finding github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c
go: finding github.com/stretchr/objx v0.1.1
go: finding github.com/mattn/go-runewidth v0.0.2
go: finding cloud.google.com/go/storage v1.10.0
go: finding golang.org/x/sys v0.0.0-20200523222454-059865788121
go: finding github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7
go: finding github.com/prometheus/client_golang v0.9.2
go: finding golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2
go: finding github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1
go: finding k8s.io/utils v0.0.0-20190801114015-581e00157fb1
go: finding github.com/Azure/go-autorest/autorest/mocks v0.4.0
go: finding github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5
go: finding github.com/spf13/pflag v1.0.1
go: finding gotest.tools/v3 v3.0.3
go: finding github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2
go: finding github.com/mattn/go-colorable v0.0.9
go: finding github.com/golang/mock v1.2.0
go: gotest.tools/[email protected]: unknown revision gotest.tools/v3.0.3
go: finding golang.org/x/net v0.0.0-20201021035429-f5854403a974
go: finding github.com/onsi/gomega v1.5.0
go: finding google.golang.org/protobuf v1.23.0
go: finding golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135
go: finding github.com/containers/ocicrypt v1.0.3
go: finding github.com/dgrijalva/jwt-go v3.2.0+incompatible
go: finding github.com/spf13/afero v1.2.2
go: finding github.com/creack/pty v1.1.7
go: finding google.golang.org/grpc v1.26.0
go: finding golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2
go: finding github.com/golang/protobuf v1.2.0
go: finding golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e
go: finding github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d
go: finding github.com/evanphx/json-patch v4.2.0+incompatible
go: finding golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6
go: finding golang.org/x/text v0.3.2
go: finding github.com/imdario/mergo v0.3.5
go: finding github.com/beorn7/perks v1.0.0
go: finding github.com/google/go-cmp v0.4.0
go: finding github.com/google/martian v2.1.0+incompatible
go: finding github.com/kisielk/errcheck v1.1.0
go: finding golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898
go: finding github.com/go-logfmt/logfmt v0.4.0
go: finding go.uber.org/multierr v1.1.0
go: finding github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559
go: finding github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
go: finding github.com/kr/pretty v0.2.0
go: finding honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a
go: finding github.com/google/go-cmp v0.3.0
go: finding github.com/mattn/go-isatty v0.0.4
go: finding golang.org/x/sys v0.0.0-20191115151921-52ab43148777
go: finding github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8
go: finding golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
go: finding golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
go: finding github.com/golang/protobuf v1.3.1
go: finding cloud.google.com/go/bigquery v1.8.0
go: finding gopkg.in/alecthomas/kingpin.v2 v2.2.6
go: finding github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57
go: finding github.com/prometheus/procfs v0.0.8
go: finding github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4
go: finding github.com/form3tech-oss/jwt-go v3.2.2+incompatible
go: finding golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0
go: finding github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4
go: finding gopkg.in/airbrake/gobrake.v2 v2.0.9
go: finding github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024
go: finding golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456
go: finding github.com/cpuguy83/go-md2man/v2 v2.0.0
go: finding golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4
go: finding google.golang.org/grpc v1.36.0
go: finding github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96
go: finding golang.org/x/sys v0.0.0-20190904154756-749cb33beabd
go: finding github.com/mitchellh/go-homedir v1.1.0
go: finding github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e
go: finding github.com/jonboulle/clockwork v0.1.0
go: finding github.com/docker/go-units v0.4.0
go: finding github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf
go: finding github.com/spf13/cobra v0.0.3
go: finding github.com/matttproud/golang_protobuf_extensions v1.0.1
go: finding golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7
go: finding github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8
go: finding github.com/golang/protobuf v1.4.3
go: finding github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b
go: finding gopkg.in/inf.v0 v0.9.1
go: finding github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d
go: finding k8s.io/kubernetes v1.13.0
go: finding github.com/modern-go/reflect2 v1.0.1
go: finding github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c
go: finding golang.org/x/sys v0.0.0-20191210023423-ac6580df4449
go: finding github.com/gogo/protobuf v1.3.1
go: finding github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7
go: finding github.com/coreos/go-semver v0.2.0
go: finding github.com/go-kit/kit v0.9.0
go: finding golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f
go: finding google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790
go: finding github.com/googleapis/gax-go/v2 v2.0.5
go: finding golang.org/x/exp v0.0.0-20190121172915-509febef88a4
go: finding github.com/Azure/go-autorest/autorest/adal v0.9.0
go: finding github.com/docker/go-events v0.0.0-20170721190031-9461782956ad
go: finding golang.org/x/net v0.0.0-20201110031124-69a78807bb2b
go: finding golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2
go: finding google.golang.org/appengine v1.5.0
go: finding golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2
go: finding github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d
go: finding google.golang.org/grpc v1.19.0
go: finding github.com/yuin/goldmark v1.2.1
go: finding github.com/stretchr/testify v1.6.1
go: finding github.com/inconshreveable/mousetrap v1.0.0
go: finding github.com/julienschmidt/httprouter v1.2.0
go: finding github.com/google/go-cmp v0.5.2
go: finding github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c
go: finding github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50
go: finding golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84
go: finding github.com/Azure/go-autorest/autorest/date v0.1.0
go: finding go.opencensus.io v0.23.0
go: finding golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
go: finding google.golang.org/appengine v1.6.7
go: finding github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90
go: finding github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4
go: finding github.com/pkg/errors v0.8.1
go: finding github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c
go: finding github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: finding golang.org/x/text v0.3.4
go: finding go.uber.org/atomic v1.3.2
go: finding cloud.google.com/go v0.57.0
go: finding github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4
go: finding github.com/json-iterator/go v1.1.6
go: finding golang.org/x/sys v0.0.0-20200120151820-655fe14d7479
go: finding golang.org/x/sys v0.0.0-20201112073958-5cba982894dd
go: finding github.com/Microsoft/hcsshim v0.8.6
go: finding github.com/prometheus/common v0.0.0-20181126121408-4724e9255275
go: finding google.golang.org/protobuf v1.25.0
go: finding github.com/google/go-cmp v0.4.1
go: finding github.com/spf13/pflag v1.0.3
go: finding github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda
go: finding golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3
go: finding golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421
go: finding github.com/fatih/color v1.7.0
go: finding github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae
go: finding golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
go: finding google.golang.org/grpc v1.27.1
go: finding github.com/peterbourgon/diskv v2.0.1+incompatible
go: finding golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5
go: finding github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
go: finding google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24
go: finding github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5
go: finding gopkg.in/yaml.v2 v2.2.2
go: finding github.com/spf13/viper v1.4.0
go: finding golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
go: finding github.com/onsi/ginkgo v1.8.0
go: finding google.golang.org/appengine v1.4.0
go: finding github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b
go: finding github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8
go: finding github.com/Azure/go-autorest/tracing v0.6.0
go: finding go.opencensus.io v0.21.0
go: finding k8s.io/klog v0.3.0
go: finding honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc
go: finding github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
go: finding github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8
go: finding github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
go: finding golang.org/x/net v0.0.0-20181201002055-351d144fa1fc
go: finding github.com/gophercloud/gophercloud v0.1.0
go: finding gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127
go: finding github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd
go: finding github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910
go: finding gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2
go: finding github.com/grpc-ecosystem/grpc-gateway v1.9.5
go: finding github.com/google/martian/v3 v3.1.0
go: finding github.com/prometheus/common v0.4.1
go: finding github.com/containerd/containerd v1.3.0
go: finding github.com/Microsoft/go-winio v0.4.14
go: finding golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e
go: finding golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
go: finding google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a
go: finding github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973
go: finding google.golang.org/api v0.28.0
go: finding golang.org/x/net v0.0.0-20191004110552-13f9640d40b9
go: finding github.com/Microsoft/go-winio v0.4.11
go: finding github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
go: finding github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
go: finding github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc
go: finding google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7
go: finding github.com/Azure/go-autorest/logger v0.2.0
go: finding github.com/coreos/go-iptables v0.4.5
go: finding gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
go: finding github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4
go: finding github.com/d2g/dhcp4client v1.0.0
go: finding github.com/Azure/go-autorest/autorest v0.9.0
go: finding golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: finding github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf
go: finding github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223
go: finding github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44
go: finding github.com/konsorten/go-windows-terminal-sequences v1.0.1
go: finding github.com/Azure/go-autorest/autorest/mocks v0.1.0
go: finding google.golang.org/api v0.41.0
go: finding github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903
go: finding github.com/soheilhy/cmux v0.1.4
go: finding github.com/urfave/cli v1.20.0
go: finding golang.org/x/sys v0.0.0-20190412213103-97732733099d
go: finding golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f
go: finding github.com/blang/semver v3.5.0+incompatible
go: finding golang.org/x/text v0.3.5
go: finding github.com/Azure/go-autorest v14.2.0+incompatible
go: finding cloud.google.com/go v0.34.0
go: finding golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
go: finding google.golang.org/grpc v1.29.1
go: finding golang.org/x/sys v0.0.0-20200217220822-9197077df867
go: finding github.com/Azure/go-autorest/tracing v0.5.0
go: finding golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e
go: finding golang.org/x/net v0.0.0-20190613194153-d28f0bde5980
go: finding google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e
go: finding golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93
go: finding google.golang.org/api v0.4.0
go: finding go.etcd.io/bbolt v1.3.3
go: finding gopkg.in/cheggaaa/pb.v1 v1.0.25
go: finding github.com/stretchr/testify v1.2.2
go: finding k8s.io/kube-openapi v0.0.0-20200410163147-594e756bea31
go: finding github.com/containernetworking/cni v0.8.0
go: finding golang.org/x/tools v0.0.0-20190312170243-e65039ee4138
go: finding google.golang.org/grpc v1.24.0
go: finding sigs.k8s.io/yaml v1.1.0
go: finding github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4
go: finding github.com/prometheus/procfs v0.0.2
go: finding golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
go: finding github.com/go-ini/ini v1.25.4
go: finding golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4
go: finding k8s.io/klog v1.0.0
go: finding github.com/hashicorp/golang-lru v0.5.1
go: finding github.com/pmezard/go-difflib v1.0.0
go: finding golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7
go: finding github.com/willf/bitset v1.1.11
go: finding gopkg.in/yaml.v2 v2.2.4
go: finding golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f
go: finding github.com/fsnotify/fsnotify v1.4.7
go: finding github.com/imdario/mergo v0.3.8
go: error loading module requirements

Seems to be due to gotest.tools. Also, I'm not familiar with go packaging practices, but this is way too many dependencies from random anons on github and online. Looks like a major security risk; see the peacenotwar malware in node-ipc

Debian GNU/Linux 10
go version go1.11.6 linux/amd64

When i use both IPv4 and v6 address. How to force the v4/v6 traffic?

My config file is as follow:

# The [Interface] and [Peer] configurations follow the same semantics and meaning
# of a wg-quick configuration. To understand what these fields mean, please refer to:
# https://wiki.archlinux.org/title/WireGuard#Persistent_configuration
# https://www.wireguard.com/#simple-network-interface
[Interface]
Address = 172.16.0.2/32
Address = 2606:4700:110:80de:c842:7e76:69e5:59e1/128 # The subnet should be /32 and /128 for IPv4 and v6 respectively
MTU = 1420
PrivateKey = cFQfJrir2UskpSlmyZgviLp3SWq5WVoGyESpd2s8q2M=
DNS = 1.1.1.1,8.8.8.8,8.8.4.4,2606:4700:4700::1111,2001:4860:4860::8888,2001:4860:4860::8844

[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
# PresharedKey = UItQuvLsyh50ucXHfjF0bbR4IIpVBd74lwKc8uIPXXs= (optional)
Endpoint = 162.159.195.18:1018
# PersistentKeepalive = 25 (optional)

.........

And my checking ip result is as follow. It seems the v4 / v6 is random

root@ubuntu:~# while [ "$i" != 10 ]; do curl -x socks5h://localhost:40000 -ksm5 -A Mozilla https://ifconfig.co/ip; ((i++));sleep 1; done
104.28.230.105
104.28.230.105
104.28.230.105
2a09:bac1:1120:18::61:289
2a09:bac1:1120:18::61:289
2a09:bac1:1120:18::61:289
2a09:bac1:1120:18::61:289
104.28.230.105
2a09:bac1:1120:18::61:289
104.28.230.105


root@ubuntu:~:~# unset i; while [ "$i" != 10 ]; do curl -x socks5h://localhost:40000 -ksm5 -A Mozilla https://api64.ipify.org; echo ''; ((i++)); done
2a09:bac1:1100:18::61:289
104.28.230.105
2a09:bac1:1100:18::61:289
2a09:bac1:1100:18::61:289
104.28.230.105
2a09:bac1:1100:18::61:289
2a09:bac1:1100:18::61:289
104.28.230.105
104.28.230.105
2a09:bac1:1100:18::61:289

can it run with command line

base some multithreading events, use subprocess with one line may avoid generating lots of config file.
like ./wireproxy -privatekey <> -address <> -dns<> -publickey<> ...

Use 'v' prefix in release tags for pkg.go.dev

Congratulations to 1.0.0 release! If possible, please add a 'v' prefix in the release tags (e.g. v1.0.0) so it will be available on pkg.go.dev [1], which will be a great help for the port of wireproxy for FreeBSD [2], which maintained by me. It's fine to have multiple tags to the same commit so co-existing of 1.0.0 and v1.0.0 tags is fine.

The reason we want to download from pkg.go.dev is because that in ports system's design, we download everything required for build in the fetch step, then verify the checksum and build in offline mode. This is for both security and reproducibility. The availability on pkg.go.dev means that we can get the dependency information from go.mod there and then fetch all the build requirements before actually build it. [3]

Please help this so I can update the FreeBSD port to 1.0.0 release. Thanks!

[1] https://pkg.go.dev/github.com/octeep/wireproxy?tab=versions
[2] https://www.freshports.org/net/wireproxy
[3] https://docs.freebsd.org/en/books/porters-handbook/special/index.html#using-go

Multi-topic: Usage clarification, SOCKS5 auth, rotation policy feature, relatability to Gost

Greatly appreciate this project. Many thanks.

I had a few things to note, and I didn't want to clutter up the issues with many entries unnecessarily.

Usage clarification

  • "SelfSecretKey" is the only param that I wasn't entirely sure would be where the "PrivateKey" fit. After confirming with the code and successful testing, it became clear. Would it be possible to clear this up in the documentation?

SOCKS Auth

  • Straight-forward as title. It would be nice to have authentication protecting the proxy.

Rotation Policy Feature

  • It would be nice to have multiple peer connections and rotation policies (eg. random vs round robin) for those peers.

Gost (out of project scope)

  • If you're not already familiar with Gost (https://v2.gost.run/en/), it could use this project a feature for expanded utility. Gost also already has connection rotation policies and auth methods.

Thanks again for building this!

Parse subnet after Self/Peer Endpoint

Addresses like 192.168.1.67/26 will panic the problem with:

ParseAddr("192.168.1.67/26"): unexpected character (at "/26")

the subnet should be parsed

High ram usage

Hello, Thanks for the amazing tool! It comes real handy for my development environment.
As I send many requests through my wireproxy socks, It continuously uses ram more and more (for the cache I guess) and I have to reset it by killing the process and restart it. Is there anything you can do about it? It would be great that the tool can handle these things without manual work.
Thanks Again!

Stops receiving handshake responses

System details
Windows 10 Pro 19045.3031, wireproxy 1.0.6
config.ini:
  WGConfig = "C:\Users\<.....>\wireguard.conf"
  [Socks5]
  BindAddress = 127.0.0.1:25344
  [http]
  BindAddress = 127.0.0.1:25345

Wireproxy stops receiving handshake responses after some time of inactivity, so I have to restart it.

DEBUG: 2023/08/17 11:45:00 Routine: encryption worker 1 - started
DEBUG: 2023/08/17 11:45:00 Routine: encryption worker 2 - started
DEBUG: 2023/08/17 11:45:00 Routine: decryption worker 1 - started
DEBUG: 2023/08/17 11:45:00 Routine: handshake worker 1 - started
DEBUG: 2023/08/17 11:45:00 Routine: decryption worker 4 - started
DEBUG: 2023/08/17 11:45:00 Routine: decryption worker 2 - started
DEBUG: 2023/08/17 11:45:00 Routine: handshake worker 2 - started
DEBUG: 2023/08/17 11:45:00 Routine: encryption worker 3 - started
DEBUG: 2023/08/17 11:45:00 Routine: decryption worker 3 - started
DEBUG: 2023/08/17 11:45:00 Routine: handshake worker 3 - started
DEBUG: 2023/08/17 11:45:00 Routine: encryption worker 4 - started
DEBUG: 2023/08/17 11:45:00 Routine: handshake worker 5 - started
DEBUG: 2023/08/17 11:45:00 Routine: handshake worker 4 - started
DEBUG: 2023/08/17 11:45:00 Routine: encryption worker 5 - started
DEBUG: 2023/08/17 11:45:00 UAPI: Updating private key
DEBUG: 2023/08/17 11:45:00 Routine: event worker - started
DEBUG: 2023/08/17 11:45:00 Interface up requested
DEBUG: 2023/08/17 11:45:00 Routine: encryption worker 6 - started
DEBUG: 2023/08/17 11:45:00 Routine: decryption worker 5 - started
DEBUG: 2023/08/17 11:45:00 Routine: decryption worker 6 - started
DEBUG: 2023/08/17 11:45:00 Routine: handshake worker 6 - started
DEBUG: 2023/08/17 11:45:00 Routine: TUN reader - started
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - UAPI: Created
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - UAPI: Updating endpoint
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - UAPI: Updating persistent keepalive interval
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - UAPI: Updating preshared key
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - UAPI: Adding allowedip
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - Starting
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - Routine: sequential receiver - started
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - Routine: sequential sender - started
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - Sending keepalive packet
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:45:00 UDP bind has been updated
DEBUG: 2023/08/17 11:45:00 Routine: receive incoming v4 - started
DEBUG: 2023/08/17 11:45:00 Routine: receive incoming v6 - started
DEBUG: 2023/08/17 11:45:00 Interface state was Down, requested Up, now Up
DEBUG: 2023/08/17 11:45:00 peer(scoh…CnU0) - Received handshake response
DEBUG: 2023/08/17 11:45:25 peer(scoh…CnU0) - Sending keepalive packet
DEBUG: 2023/08/17 11:45:50 peer(scoh…CnU0) - Sending keepalive packet
DEBUG: 2023/08/17 11:46:15 peer(scoh…CnU0) - Sending keepalive packet
DEBUG: 2023/08/17 11:46:41 peer(scoh…CnU0) - Sending keepalive packet
DEBUG: 2023/08/17 11:47:06 peer(scoh…CnU0) - Sending keepalive packet
DEBUG: 2023/08/17 11:47:06 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:11 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 2)
DEBUG: 2023/08/17 11:47:11 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:16 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 3)
DEBUG: 2023/08/17 11:47:16 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:21 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 4)
DEBUG: 2023/08/17 11:47:21 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:26 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 5)
DEBUG: 2023/08/17 11:47:26 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:32 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 6)
DEBUG: 2023/08/17 11:47:32 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:37 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 7)
DEBUG: 2023/08/17 11:47:37 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:42 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 8)
DEBUG: 2023/08/17 11:47:42 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:47 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 9)
DEBUG: 2023/08/17 11:47:47 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:53 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 10)
DEBUG: 2023/08/17 11:47:53 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:47:58 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 11)
DEBUG: 2023/08/17 11:47:58 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:03 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 12)
DEBUG: 2023/08/17 11:48:03 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:09 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 13)
DEBUG: 2023/08/17 11:48:09 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:14 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 14)
DEBUG: 2023/08/17 11:48:14 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:19 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 15)
DEBUG: 2023/08/17 11:48:19 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:24 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 16)
DEBUG: 2023/08/17 11:48:24 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:29 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 17)
DEBUG: 2023/08/17 11:48:29 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:34 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 18)
DEBUG: 2023/08/17 11:48:34 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:40 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 19)
DEBUG: 2023/08/17 11:48:40 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:45 peer(scoh…CnU0) - Handshake did not complete after 5 seconds, retrying (try 20)
DEBUG: 2023/08/17 11:48:45 peer(scoh…CnU0) - Sending handshake initiation
DEBUG: 2023/08/17 11:48:50 peer(scoh…CnU0) - Handshake did not complete after 20 attempts, giving up

If I make requests periodically everything is ok:

while (1) {Write-Host -NoNewLine "Request..."; curl -proxy http://127.0.0.1:25345 https://www.google.com > $null; echo "$(Get-Date)"; sleep 30}

But if the interval between requests is ≥90s it stops working.

How to run wireproxy silently in the background

I run winproxy with the command nohup wireproxy /etc/wireguard/proxy.conf >/dev/null 2>&1 & .
I want to run it in Systemd. There is a problem. Stuck for a long time, eventually showing timeout.
I think it's caused by windproxy running in the foreground

[Unit]
Description=WireProxy for WARP
After=network.target
Wants=network.target
Documentation=https://github.com/octeep/wireproxy

[Service]
Type=forking
ExecStart=/usr/bin/wireproxy /etc/wireguard/proxy.conf
RemainAfterExit=yes
Restart=always

[Install]
WantedBy=multi-user.target

STDIOTunnel with ssh is not working

I am unable to make STDIOTunnel to work with ssh ProxyCommand as shown in example in the README.md file.

Meanwhile TCPClientTunnel works without issues.

Software used:
Debian 12.1
OpenSSH_9.2p1 Debian-2, OpenSSL 3.0.9 30 May 2023
wireproxy, version 1.0.6

Non working config:

[Interface]
Address = 10.252.1.3/32
PrivateKey = redacted
DNS = 1.1.1.1
MTU = 1400

[Peer]
PublicKey = redacted
PresharedKey = redacted
AllowedIPs = internal.subnet/24
Endpoint = external.ip:51820
PersistentKeepalive = 15

[STDIOTunnel]
Target = internal.server.ip:22
$ ssh -o ProxyCommand='./wireproxy -c ./wireproxy.conf' [email protected]
<no output>

Though I can see on the server side that handshakes have been made, there is no output when running the above ssh command. I expected the server to ask for the password.

Working config:

[Interface]
Address = 10.252.1.3/32
PrivateKey = redacted
DNS = 1.1.1.1
MTU = 1400

[Peer]
PublicKey = redacted
PresharedKey = redacted
AllowedIPs = internal.subnet/24
Endpoint = external.ip:51820
PersistentKeepalive = 15

[TCPClientTunnel]
BindAddress = 127.0.0.1:2222
Target = internal.server.ip:22
$ ./wireproxy -c ./wireproxy.conf -d
$ ssh -p 2222 me@localhost
me@localhost's password:

Works as expected.

Wireguard server is on a separate machine, does NAT, and forwards packets to the rest of the local network.

Hopefully it's just me doing something wrong 😄

This tool is great for when you want to deploy to a server on your local network via github actions and don't want to expose ssh to the internet. Deserves a github action on the marketplace if you ask me.

one and only one [Interface] is expected

Managed to get it up and running on Debian bullseye with no issues.

However , on Macbook Pro M1 (arm64), using the same conf file, I am getting this error
one and only one [Interface] is expected

Any suggestions for troubleshooting?

Question about getting started

Hi. At the first start, it gives me this message: interface address subnet should be /32 for IPv4 and /128 for IPv6. How to fix it?

Do I need a watchdog script to reconnect to WARP?

Hi,
I find wireproxy lose connection with WARP now and then, and write a watchdog script to stop and restart wireproxy service, but I cant find threads talking about this.

I find wireproxy do handshake and keeplive work every 2 minites from /var/log/syslog, and guess it's designed to reconnect when connection lost.

So is it normal that wireproxy lose connection with WARP network and I need to restart it manually?

May  8 04:16:28 vps1 wireproxy[18150]: DEBUG: 2023/05/08 04:16:28 peer(bmXO…fgyo) - Sending handshake initiation
May  8 04:16:28 vps1 wireproxy[18150]: DEBUG: 2023/05/08 04:16:28 peer(bmXO…fgyo) - Received handshake response
May  8 04:16:28 vps1 wireproxy[18150]: DEBUG: 2023/05/08 04:16:28 peer(bmXO…fgyo) - Sending keepalive packet

Suggestion for wireproxy config file

# of a wg-quick configuration. To understand what these fields mean, please refer to:
# https://wiki.archlinux.org/title/WireGuard#Persistent_configuration
# https://www.wireguard.com/#simple-network-interface
[Interface]
Address = 10.200.200.2/32 # The subnet should be /32 and /128 for IPv4 and v6 respectively
# MTU = 1420 (optional)
PrivateKey = uCTIK+56CPyCvwJxmU5dBfuyJvPuSXAq1FzHdnIxe1Q=
DNS = 10.200.200.1

[Peer]
PublicKey = QP+A67Z2UBrMgvNIdHv8gPel5URWNLS4B3ZQ2hQIZlg=
# PresharedKey = UItQuvLsyh50ucXHfjF0bbR4IIpVBd74lwKc8uIPXXs= (optinal)
Endpoint = my.ddns.example.com:51820
# PersistentKeepalive = 25 (optinal)
....
....

How about replace all of the above with one parameter

# WireGuard profile path
Path = /etc/wireguard/wgcf.conf

Because every wgcf users must exist this file.
In this way, the case of DNS does not need to be considered by wireproxy. All happy!

Weird Errors

[ERR] socks: Failed to handle request: read tcp 127.0.0.1:1080->127.0.0.1:1942: wsarecv: An established connection was aborted by the software in your host machine.

[ERR] socks: Failed to handle request: readfrom tcp 127.0.0.1:1080->127.0.0.1:1948: read tcp 10.5.0.2:59722: connection reset by peer

I'm on Windows. What cloud be causing this? This usually shows up for sites that uses websockets (eg. Twitch), but everything works regardless (at least it seems to be).

UDP Support

Currently wireproxy doesn't have UDP support at all. There is no support for UDP Associate in SOCKS5, and UDP tunnels have not been implemented.

Challenges:

  • While a lot of existing socks5 server implementation supports UDP ASSOCIATE, actual applications that uses UDP ASSOCIATE is extremely rare. Without an established application that uses UDP ASSOCIATE, I cannot confidently test the feature in wireproxy.

  • UDP tunnels need to be implemented carefully. UDP itself is stateless so we would need to keep state of which UDP addresses correlate to which UDP connection. Measures also have to be taken to prevent exhausting UDP sockets file descriptors in case of a flood of incoming UDP packets from different IPs.

Make Error 128

Hi, I get an error when I execute make command.

wireproxy % make
tag="$(git describe --tag 2>/dev/null)" && \
	go build -ldflags "-X 'main.version=$tag'" ./cmd/wireproxy
make: *** [wireproxy] Error 128

System

Model Name: MacBook Pro
Model Identifier: MacBookPro18,3
Chip: Apple M1 Pro

Go version

wireproxy % go version
go version go1.19.2 darwin/arm64

Slow single connection speed

Hello.

I've been using wireproxy to convert wireguard VPN to socks proxy for geo restricted websites for few days and I truly appreciate all your hard work.

As I used it to open foreign streaming sites, I've notice that the video quality is downgraded but using wireguard conf to set up a new interface doesn't seem to have this issue. So I did some speed tests with curl
curl -x socks5://localhost:1080 -O https://nyc.speedtest.clouvider.net/10g.bin > /dev/null
and the speed is indeed much slower. The speed is capped at around 3200k (byte/s)

However, if I set this socks proxy on my browser and test on speedtest.net (multiple thread), it does nearly saturate my local port speed so it looks like single connection is the problem.

Can you reproduce this issue on your end?
What's the bottleneck here and is there a fix to this issue?

Thanks in advance.

Some questions

I have some questions:

  1. Does wireproxy support warp IPv6. If yes, how is the config file set?
  2. Does wireproxy support pass parameters? ----Now i run nohup ./wireproxy /etc/wireguard/wireproxy >/dev/null 2>&1 & to create the socks5 and kill -9 $(pgrep -f wireproxy) to close it.
  3. Does wireproxy support ARM64? It runs fine on AMD64. But it seems a little wrong on ARM64.
root@phoenix4:~# arch
aarch64
root@phoenix4:~# ss -nltp | grep wireproxy
LISTEN    0         4096             127.0.0.1:25565            0.0.0.0:*        users:(("wireproxy",pid=2140933,fd=12))                                        
LISTEN    0         4096             127.0.0.1:25344            0.0.0.0:*        users:(("wireproxy",pid=2140933,fd=11))                                        
root@phoenix4:~# curl -s4m5 --socks5 127.0.0.1:25344 https://ip.gs
root@phoenix4:~# 
  1. What are the usage scenarios of TCPClientTunnel and TCPServerTunnel? Can you give a specific example?

Ths your repo. It 's very useful.

Crash on armv7l architecture: panic: unaligned 64-bit atomic operation

Hi,

when trying to run wireproxy, both on the latest tag v1.0.5 and the latest git commit, on my Banana Pi M2 Ultra (which has an armv7l chip), the program crashes with the following output:

❯ ./wireproxy -c ~/.config/wireproxy/wireproxy.conf
DEBUG: 2023/03/10 11:10:44 Routine: handshake worker 1 - started
DEBUG: 2023/03/10 11:10:44 Routine: encryption worker 1 - started
DEBUG: 2023/03/10 11:10:44 UAPI: Updating private key
DEBUG: 2023/03/10 11:10:44 Routine: event worker - started
DEBUG: 2023/03/10 11:10:44 Routine: decryption worker 4 - started
DEBUG: 2023/03/10 11:10:44 Routine: encryption worker 4 - started
DEBUG: 2023/03/10 11:10:44 Routine: handshake worker 4 - started
DEBUG: 2023/03/10 11:10:44 Routine: encryption worker 3 - started
DEBUG: 2023/03/10 11:10:44 Routine: handshake worker 2 - started
DEBUG: 2023/03/10 11:10:44 Routine: TUN reader - started
DEBUG: 2023/03/10 11:10:44 Routine: decryption worker 3 - started
DEBUG: 2023/03/10 11:10:44 Routine: decryption worker 2 - started
DEBUG: 2023/03/10 11:10:44 Routine: handshake worker 3 - started
DEBUG: 2023/03/10 11:10:44 Routine: decryption worker 1 - started
DEBUG: 2023/03/10 11:10:44 Routine: encryption worker 2 - started
DEBUG: 2023/03/10 11:10:44 Interface up requested
DEBUG: 2023/03/10 11:10:44 UDP bind has been updated
DEBUG: 2023/03/10 11:10:44 Routine: receive incoming v4 - started
DEBUG: 2023/03/10 11:10:44 Routine: receive incoming v6 - started
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - UAPI: Created
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - UAPI: Updating endpoint
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - UAPI: Updating persistent keepalive interval
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - UAPI: Updating preshared key
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - UAPI: Adding allowedip
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - UAPI: Adding allowedip
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - Starting
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - Sending keepalive packet
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - Sending handshake initiation
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - Routine: sequential sender - started
DEBUG: 2023/03/10 11:10:44 peer(ms4v…4bU0) - Routine: sequential receiver - started
DEBUG: 2023/03/10 11:10:44 Interface state was Down, requested Up, now Up
DEBUG: 2023/03/10 11:10:44 Routine: handshake worker 1 - stopped
panic: unaligned 64-bit atomic operation

goroutine 16 [running]:
runtime/internal/atomic.panicUnaligned()
	/usr/lib/go-1.20/src/runtime/internal/atomic/unaligned.go:8 +0x24
runtime/internal/atomic.Load64(0x1039754)
	/usr/lib/go-1.20/src/runtime/internal/atomic/atomic_arm.s:280 +0x14
golang.zx2c4.com/wireguard/device.(*Device).IsUnderLoad(0x1039680)
	/home/mae/.go/pkg/mod/golang.zx2c4.com/[email protected]/device/device.go:226 +0x11c
golang.zx2c4.com/wireguard/device.(*Device).RoutineHandshake(0x1039680, 0x1)
	/home/mae/.go/pkg/mod/golang.zx2c4.com/[email protected]/device/receive.go:291 +0x44c
created by golang.zx2c4.com/wireguard/device.NewDevice
	/home/mae/.go/pkg/mod/golang.zx2c4.com/[email protected]/device/device.go:316 +0x2e0

The build runs just fine. I am using go 1.20 from Armbian Lunar which is based on Ubuntu Lunar (23.04).

Is 32-bit ARM supported/has it been tested yet? Do you know if there is a way to make this run with this architecture?

Thank you!

Code improvement

  • Use an existing config format instead of rolling a custom one (e.g. INI).

  • Implement reading from standard wireguard configuation

  • Instead of passing around a config map[string]string everywhere, parse the config once, at the top of main, and then pass properly-typed arguments to the functions that need them. For example, tcpServerRoutine should just take an int.

  • Listen for Ctrl-C at the end of main so you can shutdown gracefully. (unnecessary, sockets are closed automatically upon shutdown, and wireguard peers do not need to be notified of shutdowns)

  • Use io.Copy (or io.CopyBuffer) to simplify connForward

Forward Wireguard traffic to SOCKS server

Hi,

I was wondering how hard it would be to support the inverse mode of operation, where traffic received via the Wireguard interface would automatically be forwarded via a SOCKS server?

i.e TCP SYN received via wg triggers a dial via a configured SOCKS server.

In theory, this could be extended for UDP, although most SOCKS servers do not include UDP support.

"interface address subnet should be /32 for IPv4 and /128 for IPv6"

Is this check correct? The wireguard conf file that I've received from my VPN provider has subnets /24 for IPv4 and /64 for IPv6, and it works without issues with wg-quick.

In addition, the example wg.conf on ArchWiki also uses /24 and /64.

edit: I tried commenting out this line in config.go and everything seems to work with my VPN conf file.

Prefer ipv6 over ipv4 in socks proxy

With a configuration having:

[Socks5]
BindAddress = 0.0.0.0:1080

When I run curl --proxy socks5://127.0.0.1:1080 icanhazip.com I get an ipv4 address, although that hostname is dual stack. I would expect to see an ipv6 address here.
When I run curl --proxy socks5://127.0.0.1:1080 ipv6.icanhazip.com I see an ipv6 address.

any eta on udp static routing?

Hello. first of all thanks for contributing your time , knowledge and energy to make this project. as someone who lives in a third world country that uses this project to bypass internet censoring I'm really thankful for your work. I use wireproxy for my v2ray vpn server and the problem is that I can't make voice or video calls due wireproxy not supporting udp. I know it's a "me" problem but I want to know if theres a plan or an upcoming update about this subject. again, thank you so much.

Not working properly with torrenting

I have tried qBittorrent and Deluge so far.
Neither of them can connect to DHT nodes
qBittorrent can connect to PeX peers, but upload and download tend to be slower and less stable than when using my usual v2ray SOCKS5 proxy, probably due to limited connectivity with peers.
I have not seen Deluge work at all with wireproxy.

Not sure if this matters, but wireproxy output is filled with such errors when torrenting:

2022/06/06 18:44:51 [ERR] socks: Failed to handle request: Failed to send reply: write tcp 127.0.0.1:10807->127.0.0.1:59140: write: broken pipe
2022/06/06 18:44:52 [ERR] socks: Failed to handle request: readfrom tcp 127.0.0.1:10807->127.0.0.1:38796: read tcp 10.14.198.2:64038: connection reset by peer
2022/06/06 18:44:54 [ERR] socks: Failed to handle request: Connect to 172.98.71.208:9317 failed: connect tcp 172.98.71.208:9317: connection was refused

#24
If it's not too much work, could you please try to see if changing the SOCKS5 library can solve the issue? https://github.com/wzshiming/socks5
I'll be happy to help with testing

DNS leakage

I wanted to use your application as Socks5 Proxy on your server.
Carefully packed in Docker container.
Detected such effects:

  • DNS requests are sent not through the WG tunnel (DNS leakage)
  • There are no options to specify 0.0.0.0 as the SOCKS5 server address, thereby making the server on all network cards

Go 1.19 build fails

❯ go version
go version go1.19 linux/amd64
❯ go build ./cmd/wireproxy
package github.com/octeep/wireproxy/cmd/wireproxy
        imports github.com/octeep/wireproxy
        imports golang.zx2c4.com/wireguard/tun/netstack
        imports gvisor.dev/gvisor/pkg/tcpip
        imports gvisor.dev/gvisor/pkg/atomicbitops
        imports gvisor.dev/gvisor/pkg/state
        imports gvisor.dev/gvisor/pkg/state/wire
        imports gvisor.dev/gvisor/pkg/gohacks: build constraints exclude all Go files in /home/user/go/pkg/mod/gvisor.dev/[email protected]/pkg/gohacks

TCPServerTunnel only works after initial SOCKS5 connection

Config file:

[Interface]
PrivateKey = X
Address = X

[Peer]
PublicKey = X
Endpoint = X

[TCPServerTunnel]
ListenPort = 12345
Target = localhost:12345

[Socks5]
BindAddress = 127.0.0.1:25344

I run:

./wireproxy --config config.ini

wireproxy logs:
https://paste.gg/p/anonymous/7af375524bf5495f8c1fbe6c0ba9c13f

Then, I start a listener:

nc -l 12345

Now I try to connect via external (server) IP:

nc X 12345
hey

Nothing received on listener side...

But if I connect to SOCKS5 using Chrome, as soon as the first connection packet is sent, I see this:

DEBUG: 2022/06/09 01:22:22 peer(X) - Sending handshake initiation
DEBUG: 2022/06/09 01:22:22 peer(X) - Received handshake response

And now, the previous experiment works:

nc X 12345
hey
nc -l 12345
hey

Http Proxy?

Can you allow an HTTP proxy similar to the socks proxy?

TCP

Hello, dear author. Thank you for your contribution. There's a question I haven't quite understood. I have established a connection between wireguard-US (server) and my local wireguard-CH (client). On my US-VPS, I have set up wireproxy and configured its listening address to use Wireguard, allowing me to switch networks through ports. However, I'm unsure whether this setup is based on UDP or TCP. I need both of them. If I want wireproxy to use TCP, how should I proceed? I will paste my server configuration below and hope to receive your assistance. I'm a networking novice. Lastly, I wish you good health, and by the way, I hope your wishes come true.

WireProxy-----conf

[Interface]
##JP
PrivateKey = XXXXXXXXXX
Address = 10.10.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = BBBBBBBBBBB
AllowedIPs = 0.0.0.0/0
Endpoint = 2.2.2.2:51820
PersistentKeepalive = 25

[Socks5]
BindAddress = 10.10.6.1:10033 (Wireguard-US)

Support

Hello.

Does Wireproxy encrypt traffic? Since classic proxy doesn't do this, I'm curious because wireproxy uses wireguard.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.