{"id":13826092,"url":"https://github.com/dsnet/sshtunnel","last_synced_at":"2025-07-19T11:40:33.734Z","repository":{"id":57533436,"uuid":"65848591","full_name":"dsnet/sshtunnel","owner":"dsnet","description":"SSH daemon for creating forward and reverse tunnels.","archived":false,"fork":false,"pushed_at":"2024-09-05T18:57:06.000Z","size":28,"stargazers_count":74,"open_issues_count":2,"forks_count":13,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-02T06:22:19.898Z","etag":null,"topics":["nat","networking","proxy","ssh","tunnel"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dsnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-16T19:43:33.000Z","updated_at":"2025-03-30T00:43:01.000Z","dependencies_parsed_at":"2024-04-24T07:44:36.576Z","dependency_job_id":"003afb24-d42a-42ad-b3ad-dc9fb9b89c85","html_url":"https://github.com/dsnet/sshtunnel","commit_stats":{"total_commits":28,"total_committers":1,"mean_commits":28.0,"dds":0.0,"last_synced_commit":"ad1a6edd031b68198fff29c179b43653df82d7bb"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dsnet/sshtunnel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fsshtunnel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fsshtunnel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fsshtunnel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fsshtunnel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsnet","download_url":"https://codeload.github.com/dsnet/sshtunnel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fsshtunnel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265926997,"owners_count":23850886,"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":["nat","networking","proxy","ssh","tunnel"],"created_at":"2024-08-04T09:01:31.997Z","updated_at":"2025-07-19T11:40:33.690Z","avatar_url":"https://github.com/dsnet.png","language":"Go","funding_links":[],"categories":["\u003ca id=\"01e6651181d405ecdcd92a452989e7e0\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"9d6789f22a280f5bb6491d1353b02384\"\u003e\u003c/a\u003e隧道\u0026\u0026穿透"],"readme":"# SSH tunnel proxy daemon #\n\n## Introduction ##\n\nThis repository contains a simple implementation of a SSH proxy daemon used to\nsecurely tunnel TCP connections in forward and reverse proxy mode.\nThis tool provides equivalent functionality to using the `ssh` command's\n`-L` and `-R` flags.\n\nConsider using [github.com/dsnet/udptunnel](https://github.com/dsnet/udptunnel)\nif running behind a NAT that drops long-running TCP connections, but allows\nUDP traffic to reliably pass through.\n\n## Usage ##\n\nBuild the daemon:\n\n```go get -u github.com/dsnet/sshtunnel```\n\nCreate a configuration file:\n\n```javascript\n{\n\t\"KeyFiles\": [\"/path/to/key.priv\"],\n\t\"KnownHostFiles\": [\"/path/to/known_hosts\"],\n\t\"Tunnels\": [{\n\t\t// Forward tunnel (locally binded socket proxies to remote target).\n\t\t\"Tunnel\": \"bind_address:port -\u003e dial_address:port\",\n\t\t\"Server\": \"user@host\",\n\t}, {\n\t\t// Reverse tunnel (remotely binded socket proxies to local target).\n\t\t\"Tunnel\": \"dial_address:port \u003c- bind_address:port\",\n\t\t\"Server\": \"user@host\",\n\t}],\n}\n```\n\nThe above configuration is equivalent to running the following:\n\n```bash\nssh $USER@$HOST -i /path/to/key.priv -L $BIND_ADDRESS:$BIND_PORT:$DIAL_ADDRESS:$DIAL_PORT\nssh $USER@$HOST -i /path/to/key.priv -R $BIND_ADDRESS:$BIND_PORT:$DIAL_ADDRESS:$DIAL_PORT\n```\n\nStart the daemon (assuming `$GOPATH/bin` is in your `$PATH`):\n\n```sshtunnel /path/to/config.json```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsnet%2Fsshtunnel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsnet%2Fsshtunnel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsnet%2Fsshtunnel/lists"}