{"id":13787935,"url":"https://github.com/staaldraad/turner","last_synced_at":"2025-07-11T14:37:21.799Z","repository":{"id":56548403,"uuid":"254120370","full_name":"staaldraad/turner","owner":"staaldraad","description":"SOCKS5 and HTTP over TURN/STUN proxy","archived":false,"fork":false,"pushed_at":"2023-12-30T17:54:31.000Z","size":53,"stargazers_count":178,"open_issues_count":1,"forks_count":12,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-12T15:57:18.184Z","etag":null,"topics":[],"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/staaldraad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-04-08T15:03:11.000Z","updated_at":"2025-04-17T02:22:07.000Z","dependencies_parsed_at":"2024-06-18T22:43:20.882Z","dependency_job_id":"d3057530-d526-469d-a8b1-41d4863b3078","html_url":"https://github.com/staaldraad/turner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/staaldraad/turner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staaldraad%2Fturner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staaldraad%2Fturner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staaldraad%2Fturner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staaldraad%2Fturner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/staaldraad","download_url":"https://codeload.github.com/staaldraad/turner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staaldraad%2Fturner/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264833290,"owners_count":23670617,"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-03T21:00:33.514Z","updated_at":"2025-07-11T14:37:21.779Z","avatar_url":"https://github.com/staaldraad.png","language":"Go","funding_links":[],"categories":["Open-source tools","Go"],"sub_categories":[],"readme":"# Turner\n\nA proof of concept for tunnelling HTTP over a permissive/open TURN server. This will connect to the server, setting up any TCP channels required. A local HTTP proxy is created on 8080, which can be used to \"tunnel\" the traffic to a target host, for example 169.254.169.254, which the TURN server has access to but you might not have direct access to.\n\nMore info: [https://www.rtcsec.com/2020/04/01-slack-webrtc-turn-compromise/](https://www.rtcsec.com/2020/04/01-slack-webrtc-turn-compromise/)\n\n## Install\n\nIf using *GO Modules*:\n\n```\ngit clone https://github.com/staaldraad/turner\ncd turner\ngo build\n```\n\n## Run\n\nThis assumes you already have a TURN server to connect to or are running your own. If you need to run your own checkout: [https://github.com/coturn/coturn/wiki/turnserver](https://github.com/coturn/coturn/wiki/turnserver)\n\n```\n./turner -server turn.server:3478\n```\n\nYou can also supply the username/password if the server requires these:\n\n```\n./turner -server turn.server:3478 -u username -p password -http\n```\n\nThe HTTP proxy listens on **127.0.0.1:8080** by default. \n\nTesting that the proxy works:\n\n```\n# should return your external IP\ncurl http://ifconf.co/ip \n\n# should return the IP of the TURN server\ncurl -x http://localhost:8080 http://ifconf.co/ip \n```\n\n### SOCKS5\n\nThere is basic SOCKS5 support built-in. The SOCKS5 server can be toggled on via the `-socks5` argument. The proxy listens on port **127.0.0.1:8000** by default.\n\n```\n./turner -server turn.server:3478 -u username -p password -socks5\n```\n\nIt is also possible to enable both SOCKS5 and HTTP proxy-ing at the same time. Simply supply both arguments `-http` and `-socks5`.\n\n# LICENSE\n\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nTurner is licensed under a MIT License (https://choosealicense.com/licenses/mit/) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaaldraad%2Fturner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstaaldraad%2Fturner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaaldraad%2Fturner/lists"}