{"id":13815319,"url":"https://github.com/knownsec/rtcp","last_synced_at":"2025-06-19T00:08:39.882Z","repository":{"id":2554622,"uuid":"3533238","full_name":"knownsec/rtcp","owner":"knownsec","description":"利用 Python 的 Socket 端口转发，用于远程维护","archived":false,"fork":false,"pushed_at":"2019-09-27T13:58:41.000Z","size":12,"stargazers_count":710,"open_issues_count":8,"forks_count":290,"subscribers_count":40,"default_branch":"master","last_synced_at":"2025-05-15T07:41:55.272Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knownsec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-02-24T06:07:17.000Z","updated_at":"2025-04-04T17:39:35.000Z","dependencies_parsed_at":"2022-07-21T04:39:04.809Z","dependency_job_id":null,"html_url":"https://github.com/knownsec/rtcp","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/knownsec/rtcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knownsec%2Frtcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knownsec%2Frtcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knownsec%2Frtcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knownsec%2Frtcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knownsec","download_url":"https://codeload.github.com/knownsec/rtcp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knownsec%2Frtcp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260654686,"owners_count":23042679,"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-08-04T04:03:19.359Z","updated_at":"2025-06-19T00:08:34.868Z","avatar_url":"https://github.com/knownsec.png","language":"Python","funding_links":[],"categories":["Python","Python (1887)"],"sub_categories":[],"readme":"# rtcp.py\n\n## 简介\n\n* 利用 Python 的 Socket 端口转发，用于远程维护\n* 如果连接不到远程，会 sleep 36s，最多尝试 200 次（即两小时）\n\n## 用法\n\n* ./rtcp.py stream1 stream2\n* stream 为：l:port 或 c:host:port\n* l:port 表示监听指定的本地端口\n* c:host:port 表示监听远程指定的端口\n\n## 使用场景\n\nA 服务器在内网，公网无法直接访问这台服务器，但是 A 服务器可以联网访问公网的 B 服务器（假设 IP 为 222.2.2.2）\n\n我们也可以访问公网的 B 服务器。我们的目标是访问 A 服务器的 22 端口。那么可以这样：\n\n* 在 B 服务器上运行：./rtcp.py l:10001 l:10002\n  + 表示在本地监听了 10001 与 10002 两个端口，这样，这两个端口就可以互相传输数据了\n\n* 在 A 服务器上运行：./rtcp.py c:localhost:22 c:222.2.2.2:10001\n  + 表示连接本地的 22 端口与 B 服务器的 10001 端口，这两个端口也可以互相传输数据了\n\n* 然后我们就可以这样来访问 A 服务器的 22 端口了：ssh -p 10002 222.2.2.2\n  + 原理很简单，这个命令执行后，B 服务器的 10002 端口接收到的任何数据都会传给 10001 端口\n  + 此时，A 服务器是连接了 B 服务器的 10001 端口的，数据就会传给 A 服务器，最终进入 A 服务器的 22 端口\n\n# 贡献者\n\n* watercloud\n* zd\n* kun\n* Knownsec R\u0026D Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknownsec%2Frtcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknownsec%2Frtcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknownsec%2Frtcp/lists"}