{"id":23638376,"url":"https://github.com/tuankiri/socks5","last_synced_at":"2025-08-31T14:31:31.866Z","repository":{"id":228077134,"uuid":"773105510","full_name":"TuanKiri/socks5","owner":"TuanKiri","description":"A fully featured implementation of the SOCKS 5 protocol in golang. Command CONNECT ✅, BIND 🛠, UDP ASSOCIATE ✅.","archived":false,"fork":false,"pushed_at":"2024-12-19T18:56:15.000Z","size":75,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-19T19:43:46.771Z","etag":null,"topics":["bind","connect","go","golang","proxy","socks","socks5","socks5h","tcp-proxy","tls","udp","udp-associate","udp-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TuanKiri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-16T19:01:58.000Z","updated_at":"2024-12-19T18:56:13.000Z","dependencies_parsed_at":"2024-04-17T16:50:02.927Z","dependency_job_id":"7a54243f-94b9-41f6-9b5e-cafb2af1aec7","html_url":"https://github.com/TuanKiri/socks5","commit_stats":null,"previous_names":["jc5lziy3hvfv5ux/socks5","tuankiri/socks5"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TuanKiri%2Fsocks5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TuanKiri%2Fsocks5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TuanKiri%2Fsocks5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TuanKiri%2Fsocks5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TuanKiri","download_url":"https://codeload.github.com/TuanKiri/socks5/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231600455,"owners_count":18398544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bind","connect","go","golang","proxy","socks","socks5","socks5h","tcp-proxy","tls","udp","udp-associate","udp-proxy"],"created_at":"2024-12-28T07:39:41.981Z","updated_at":"2025-08-31T14:31:31.849Z","avatar_url":"https://github.com/TuanKiri.png","language":"Go","readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg alt=\"Gopher socks logo\" src=\"https://github.com/TuanKiri/socks5-assets/blob/master/logo.png?raw=true\" width=\"200\"\u003e\n\n\u003ch1\u003eSOCKS 5\u003c/h1\u003e\n\n[![license](https://img.shields.io/badge/license-MIT-red.svg)](LICENSE)\n[![go version](https://img.shields.io/github/go-mod/go-version/TuanKiri/socks5)](go.mod)\n[![go doc](https://godoc.org/github.com/TuanKiri/socks5?status.svg)](https://pkg.go.dev/github.com/TuanKiri/socks5)\n[![go report](https://goreportcard.com/badge/github.com/TuanKiri/socks5)](https://goreportcard.com/report/github.com/TuanKiri/socks5)\n[![tests](https://github.com/TuanKiri/socks5/actions/workflows/go.yml/badge.svg?branch=master)](https://github.com/TuanKiri/socks5/actions?workflow=Test)\n\n\u003cstrong\u003e[Report Bug](https://github.com/TuanKiri/socks5/issues/new?assignees=\u0026labels=bug\u0026projects=\u0026template=bug_report.yml\u0026title=%5BBug%5D%3A+)\u003c/strong\u003e | \u003cstrong\u003e[Request Feature](https://github.com/TuanKiri/socks5/issues/new?assignees=\u0026labels=enhancement\u0026projects=\u0026template=feature_request.yml\u0026title=%5BEnhancement%5D%3A+)\u003c/strong\u003e\n\nA fully featured implementation of the SOCKS 5 protocol in golang.\n\n|     CONNECT      |      BIND       |  UDP ASSOCIATE   |\n| :--------------: | :-------------: | :--------------: |\n| ✅ - implemented | 🛠 - in progress | ✅ - implemented |\n\n\u003cimg alt=\"Gopher socks logo\" src=\"https://github.com/TuanKiri/socks5-assets/blob/master/preview.gif?raw=true\" width=\"480\"\u003e\n\n\u003c/div\u003e\n\n## Installation\n\n    go get github.com/TuanKiri/socks5\n\n## Getting Started\n\nCreate your `.go` file. For example: `main.go`.\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"os/signal\"\n\t\"syscall\"\n\n\t\"github.com/TuanKiri/socks5\"\n)\n\nfunc main() {\n\tctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)\n\tdefer stop()\n\n\tsrv := socks5.New()\n\n\tgo func() {\n\t\tif err := srv.ListenAndServe(); err != nil {\n\t\t\tlog.Fatal(err)\n\t\t}\n\t}()\n\n\t\u003c-ctx.Done()\n\n\tif err := srv.Shutdown(); err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n```\n\nRun your server:\n\n    go run main.go\n\nThe following curl example shows how to use the proxy server:\n\n    curl -x socks5://127.0.0.1:1080 http://example.com\n\nSee the [tests](socks5_test.go) and [examples](examples) for more information about package.\n\n## FAQ\n\n- Why can't connect to socks proxy server?\n\n  Not all applications and browsers support socks authentication or socks protocol. You may need [extension](https://github.com/txthinking/socks5-configurator) for Chrome or another browser.\n\nIf you have any questions, you can ask in [GitHub Discussions](https://github.com/TuanKiri/socks5/discussions/new?category=q-a).\n\n## Note\n\n- The proof of work for the UDP association was done using [qBittorrent](https://github.com/qbittorrent/qBittorrent) - a BitTorrent client.\n\n## Contributing\n\nFeel free to open tickets or send pull requests with improvements. Thanks in advance for your help!\n\nPlease follow the [contribution guidelines](.github/CONTRIBUTING.md).\n\n## References\n\n- [RFC 1928](https://www.rfc-editor.org/rfc/rfc1928.txt) SOCKS Protocol Version 5\n- [RFC 1929](https://www.rfc-editor.org/rfc/rfc1929.txt) Username/Password Authentication for SOCKS V5\n\n## Licenses\n\n- All source code is licensed under the [MIT License](LICENSE).\n\n- Logo is based on the Go Gopher mascot originally designed by [Egon Elbre](https://github.com/egonelbre/gophers) and which is also licensed under the [CC0 1.0 Universal License](https://creativecommons.org/publicdomain/zero/1.0/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuankiri%2Fsocks5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftuankiri%2Fsocks5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuankiri%2Fsocks5/lists"}