{"id":13394010,"url":"https://github.com/shadowsocks/shadowsocks-go","last_synced_at":"2025-12-30T05:09:19.436Z","repository":{"id":5305369,"uuid":"6486840","full_name":"shadowsocks/shadowsocks-go","owner":"shadowsocks","description":"go port of shadowsocks (Deprecated)","archived":true,"fork":false,"pushed_at":"2020-04-09T06:44:51.000Z","size":405,"stargazers_count":6603,"open_issues_count":46,"forks_count":3317,"subscribers_count":404,"default_branch":"master","last_synced_at":"2024-12-08T01:00:49.335Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://shadowsocks.github.io/shadowsocks-go","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shadowsocks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-01T08:43:38.000Z","updated_at":"2024-12-06T01:52:52.000Z","dependencies_parsed_at":"2022-07-15T03:00:40.425Z","dependency_job_id":null,"html_url":"https://github.com/shadowsocks/shadowsocks-go","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowsocks%2Fshadowsocks-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowsocks%2Fshadowsocks-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowsocks%2Fshadowsocks-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowsocks%2Fshadowsocks-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shadowsocks","download_url":"https://codeload.github.com/shadowsocks/shadowsocks-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235424901,"owners_count":18988311,"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":[],"created_at":"2024-07-30T17:01:05.521Z","updated_at":"2025-10-05T17:31:24.965Z","avatar_url":"https://github.com/shadowsocks.png","language":"Go","funding_links":[],"categories":["Misc","Go","Uncategorized","\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具","Go (531)"],"sub_categories":["Uncategorized","\u003ca id=\"cb16466a31a167bb61f39e2a4a85f449\"\u003e\u003c/a\u003eShadowsocks"],"readme":"# Deprecated\n\nUse https://github.com/shadowsocks/go-shadowsocks2 instead.\n\n# shadowsocks-go\n\nCurrent version: 1.2.2 [![Build Status](https://travis-ci.org/shadowsocks/shadowsocks-go.png?branch=master)](https://travis-ci.org/shadowsocks/shadowsocks-go)\n\nshadowsocks-go is a lightweight tunnel proxy which can help you get through firewalls. It is a port of [shadowsocks](https://github.com/clowwindy/shadowsocks).\n\nThe protocol is compatible with the origin shadowsocks (if both have been upgraded to the latest version).\n\n**Note `server_password` option syntax changed in 0.6.2, the client now connects to servers in the order specified in the config.**\n\n**Please develop on the latest develop branch if you want to send pull request.**\n\n# Install\n\nDownload precompiled binarys from the [release page](https://github.com/shadowsocks/shadowsocks-go/releases). (All compiled with cgo disabled, except the mac version.)\n\nYou can also install from source (assume you have go installed):\n\n```\n# on server\ngo get github.com/shadowsocks/shadowsocks-go/cmd/shadowsocks-server\n# on client\ngo get github.com/shadowsocks/shadowsocks-go/cmd/shadowsocks-local\n```\n\nIt's recommended to disable cgo when compiling shadowsocks-go. This will prevent the go runtime from creating too many threads for dns lookup.\n\n# Usage\n\nBoth the server and client program will look for `config.json` in the current directory. You can use `-c` option to specify another configuration file.\n\nConfiguration file is in json format and has the same syntax with [shadowsocks-nodejs](https://github.com/clowwindy/shadowsocks-nodejs/). You can download the sample [`config.json`](https://github.com/shadowsocks/shadowsocks-go/blob/master/config.json), change the following values:\n\n```\nserver          your server ip or hostname\nserver_port     server port\nlocal_port      local socks5 proxy port\nmethod          encryption method, null by default (table), the following methods are supported:\n                    aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, rc4-md5-6, chacha20, salsa20, rc4, table\npassword        a password used to encrypt transfer\ntimeout         server option, in seconds\n```\n\nRun `shadowsocks-server` on your server. To run it in the background, run `shadowsocks-server \u003e log \u0026`.\n\nOn client, run `shadowsocks-local`. Change proxy settings of your browser to\n\n```\nSOCKS5 127.0.0.1:local_port\n```\n\n## About encryption methods\n\nAES is recommended for shadowsocks-go. [Intel AES Instruction Set](http://en.wikipedia.org/wiki/AES_instruction_set) will be used if available and can make encryption/decryption very fast. To be more specific, **`aes-128-cfb` is recommended as it is faster and [secure enough](https://www.schneier.com/blog/archives/2009/07/another_new_aes.html)**.\n\n**rc4 and table encryption methods are deprecated because they are not secure.**\n\n### One Time Auth\n\nOTA function is deprecated because it is reported to have potential security risk.\n\n## Command line options\n\nCommand line options can override settings from configuration files. Use `-h` option to see all available options.\n\n```\nshadowsocks-local -s server_address -p server_port -k password\n    -m aes-128-cfb -c config.json\n    -b local_address -l local_port\nshadowsocks-server -p server_port -k password\n    -m aes-128-cfb -c config.json\n    -t timeout\n```\n\nUse `-d` option to enable debug message.\n\n## Use multiple servers on client\n\n```\nserver_password    specify multiple server and password, server should be in the form of host:port\n```\n\nHere's a sample configuration [`client-multi-server.json`](https://github.com/shadowsocks/shadowsocks-go/blob/master/sample-config/client-multi-server.json). Given `server_password`, client program will ignore `server_port`, `server` and `password` options.\n\nServers are chosen in the order specified in the config. If a server can't be connected (connection failure), the client will try the next one. (Client will retry failed server with some probability to discover server recovery.)\n\n## Multiple users with different passwords on server\n\nThe server can support users with different passwords. Each user will be served by a unique port. Use the following options on the server for such setup:\n\n```\nport_password   specify multiple ports and passwords to support multiple users\n```\n\nHere's a sample configuration [`server-multi-port.json`](https://github.com/shadowsocks/shadowsocks-go/blob/master/sample-config/server-multi-port.json). Given `port_password`, server program will ignore `server_port` and `password` options.\n\n### Update port password for a running server\n\nEdit the config file used to start the server, then send `SIGHUP` to the server process.\n\n# Note to OpenVZ users\n\n**Use OpenVZ VM that supports vswap**. Otherwise, the OS will incorrectly account much more memory than actually used. shadowsocks-go on OpenVZ VM with vswap takes about 3MB memory after startup. (Refer to [this issue](https://github.com/shadowsocks/shadowsocks-go/issues/3) for more details.)\n\nIf vswap is not an option and memory usage is a problem for you, try [shadowsocks-libev](https://github.com/madeye/shadowsocks-libev).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowsocks%2Fshadowsocks-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadowsocks%2Fshadowsocks-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowsocks%2Fshadowsocks-go/lists"}