{"id":25526443,"url":"https://github.com/capacitorset/bizarre-net","last_synced_at":"2025-10-13T11:37:14.323Z","repository":{"id":71258243,"uuid":"337379343","full_name":"CapacitorSet/bizarre-net","owner":"CapacitorSet","description":"A project to run Internet connections over bizarre media.","archived":false,"fork":false,"pushed_at":"2023-01-07T22:31:24.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-13T11:37:13.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/CapacitorSet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2021-02-09T11:14:56.000Z","updated_at":"2022-03-11T10:30:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"0ef42691-d14e-445a-b1b8-54f69c397521","html_url":"https://github.com/CapacitorSet/bizarre-net","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CapacitorSet/bizarre-net","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CapacitorSet%2Fbizarre-net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CapacitorSet%2Fbizarre-net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CapacitorSet%2Fbizarre-net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CapacitorSet%2Fbizarre-net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CapacitorSet","download_url":"https://codeload.github.com/CapacitorSet/bizarre-net/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CapacitorSet%2Fbizarre-net/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014803,"owners_count":26085594,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-02-19T21:18:31.942Z","updated_at":"2025-10-13T11:37:14.317Z","avatar_url":"https://github.com/CapacitorSet.png","language":"Go","readme":"# bizarre-net\n\nA project to run Internet connections over bizarre media. Work in progress.\n\n## Instructions\n\nConfigure `client/config.toml` and `server/config.toml` as needed, then:\n\n```bash\ncd server\ngo build\nsudo setcap CAP_NET_ADMIN+ep ./server\ncd ../client\ngo build\nsudo setcap CAP_NET_ADMIN+ep ./client\n\n./server # On the server machine\n./client # On the client machine\n```\n\n## Tips\n\nTo enable forwarding on the server and thus be able to connect to the Internet (where `bizarre0` is the server TUN and `eth0` is an interface connected to the Internet):\n\n```bash\n# On the server\nsudo sysctl -w net.ipv4.ip_forward=1\nsudo iptables -t filter -I FORWARD -i bizarre0 -o eth0 -j ACCEPT\nsudo iptables -t filter -I FORWARD -m state -i bizarre0 --state ESTABLISHED,RELATED -j ACCEPT\nsudo iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE\n```\n\nYou might need to enable local traffic on the interface (or both, if you're testing locally):\n\n```bash\nsudo sysctl -w net.ipv4.conf.bizarre0.accept_local=1\nsudo sysctl -w net.ipv4.conf.bizarre1.accept_local=1\n```\n\nWhen troubleshooting you might want to ask yourself these questions:\n\n - Is the application using the correct route? `ip route get \u003cip\u003e` is your friend.\n - Are the packets being forwarded? Try sniffing the client TUN, the server TUN, and the Internet interface for the server.\n - Are the packets being masqueraded (i.e. do they come from the server IP and not from the tunnel IP when leaving the server)? Try sniffing the Internet interface for the server.\n\nWhen developing, using network namespaces allows for multiple \"clean\" environments (no firewalls or iptables rules). `go run tools/setup/main.go` creates an environment with a \"server\" namespace `srvns` and a \"client\" namespace `clins`, connected by a virtual Ethernet cable `seth0-veth0`, respectively with the address 192.168.1.2/24 and 192.168.1.3/24. With `tools/become-server.sh` and `tools/become-client.sh` you can then open a shell into those namespaces. Finally, [here](https://iximiuz.com/en/posts/container-networking-is-simple/)'s a good tutorial about network namespaces.\n\n## Testing\nSet up the testing environment with `go run tools/setup/main.go`. Then:\n\n```bash\n# First run this in a terminal\ntools/become-server.sh\ncd test/udp\nsudo go test -run TestUDPServer\n```\n\n```bash\n# Then run this in another terminal\ntools/become-client.sh\ncd test/udp\nsudo go test -run TestUDPClient\n```\n\n`sudo go run run_tests.go` is also available, but it is meant for quick tests where you're not interested in inspecting the output and for continuous integration.\n\n## Todo list\n\n[x] Command execution\n[ ] File upload/download/exploration\n[ ] Rootless mode (disables TUN creation)\n[ ] Password authentication\n[ ] Compression\n[ ] ICMP transport\n[ ] DNS transport\n[ ] Version compatibility check (embed in hello message)\n[ ] Write tests\n[ ] Test IPv6 support\n[ ] Testing on Windows\n\n## Licenses\n\nThis project is currently \"all rights reserved\", but will eventually get a proper license when it works.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapacitorset%2Fbizarre-net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcapacitorset%2Fbizarre-net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapacitorset%2Fbizarre-net/lists"}