{"id":26897860,"url":"https://github.com/gopy-art/proxy2icmp","last_synced_at":"2025-05-13T00:33:47.880Z","repository":{"id":253644622,"uuid":"844113822","full_name":"gopy-art/proxy2icmp","owner":"gopy-art","description":"This tool bypass firewall and filtering that send TCP/UDP traffic over ICMP.","archived":false,"fork":false,"pushed_at":"2024-08-18T12:41:19.000Z","size":33108,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-07T15:03:55.797Z","etag":null,"topics":["firewall","go","golang","icmp","network","proxy","tcp","udp","vpn"],"latest_commit_sha":null,"homepage":"","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/gopy-art.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}},"created_at":"2024-08-18T12:31:46.000Z","updated_at":"2024-10-11T02:01:26.000Z","dependencies_parsed_at":"2024-08-18T13:43:13.806Z","dependency_job_id":null,"html_url":"https://github.com/gopy-art/proxy2icmp","commit_stats":null,"previous_names":["gopy-art/proxy2icmp"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gopy-art%2Fproxy2icmp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gopy-art%2Fproxy2icmp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gopy-art%2Fproxy2icmp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gopy-art%2Fproxy2icmp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gopy-art","download_url":"https://codeload.github.com/gopy-art/proxy2icmp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246586035,"owners_count":20801026,"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":["firewall","go","golang","icmp","network","proxy","tcp","udp","vpn"],"created_at":"2025-04-01T05:07:21.083Z","updated_at":"2025-04-01T05:07:21.590Z","avatar_url":"https://github.com/gopy-art.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# proxy2icmp\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub go.mod Go version of a Go module](https://img.shields.io/badge/go-1.22.5-blue)](https://go.dev/dl/) \n[![GitHub go.mod Go version of a Go module](https://img.shields.io/badge/version-1.1.2-purple)](https://go.dev/dl/)\n\u003c/div\u003e\n\nthis tool bypass firewall and filttering that send TCP/UDP traffic over ICMP.\u003cbr /\u003e\n\n- [proxy2icmp](#proxy2icmp)\n  - [How it\\`s work](#how-its-work)\n  - [Quick start](#quick-start)\n      - [Build Static](#build-static)\n      - [Install server](#install-server)\n      - [Install the client](#install-the-client)\n  - [Encryption](#encryption)\n  - [Example](#example)\n    - [client:](#client)\n    - [server:](#server)\n  - [Service](#service)\n      - [server side:](#server-side)\n      - [client side:](#client-side)\n  - [Server service log](#server-service-log)\n  - [Client service log](#client-service-log)\n  - [Logger](#logger)\n  - [(Optional) Disable system default ping](#optional-disable-system-default-ping)\n  - [Cross compile](#cross-compile)\n\n## How it`s work\nrun a server app for any client app with any(tcp\\udp\\socks5) protocol on client side.\u003cbr /\u003e\nnotice that when use tcp or udp protocols , packets must be forward to target server(local or remote) but it not need for socks5.\n\n![image](network.jpg)\n\n## Quick start\n#### Build Static\n-   cd to cmd/proxy2icmp in root directory of project and use go command to compile app as static libs  \n```\nGOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o proxy2icmp -ldflags=\"-extldflags=-static\"\n```\n#### Install server\n-   First prepare a server with a public IP, such as EC2 on AWS, assuming the domain name or public IP is www.yourserver.com\n```\nsudo ./proxy2icmp -type server\n```\n\n-   (Optional) Disable system default ping\n```\necho 1 \u003e /proc/sys/net/ipv4/icmp_echo_ignore_all\n```\n#### Install the client\n\n-   Forward socks5\n\n```\nsudo ./proxy2icmp -type client -l :4455 -s www.yourserver.com -sock5 1\n```\n\n-   Forward tcp\n\n```\nsudo ./proxy2icmp -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455 -tcp 1\n```\n\n-   Forward udp\n\n```\nsudo ./proxy2icmp -type client -l :4455 -s www.yourserver.com -t www.yourserver.com:4455\n```\n\n## Encryption\n\nto secure messages between client and server you can enable encrytion with -encryption flage.default is off.\nnotice when you want encryption, you must enable it on both server and client.\n\n-   server:\n```\nsudo ./proxy2icmp -type server -encryption\n```\n-   client:\n```\nsudo ./proxy2icmp -type client -encryption -l :4455 -s 192.168.10.123 -t 192.168.10.16:8181 -tcp 1\n```\n\n## Example\n### client:\n-   socks5:\n```\nsudo ./proxy2icmp -type client -l 0.0.0.0:1080 -s 192.168.10.123 -sock5 1\n```\n\n-   tcp:\n```\nsudo ./proxy2icmp -type client -l :4455 -s 192.168.10.123 -t 192.168.10.16:8181 -tcp 1\n```\n\n-   udp:\n```\nsudo ./proxy2icmp -type client -l :4455 -s 192.168.10.123 -t 192.168.10.16:1194\n```\n### server:\n```\nsudo ./proxy2icmp -type server\n```\n\n## Service\nrun this app as a service\n\n#### server side:\n\n./service.sh `server`\n\n```\nsudo ./service.sh server\n```\n\n#### client side:\n\n./service.sh `client` `\u003clistenIp\u003e` `\u003cserverIp\u003e` `\u003cport\u003e` `\u003cprotocol\u003e`\n\n-   socks5:\n```\nsudo ./service.sh client 192.168.10.123 192.168.10.16 8443 sock5\n```\n\n-   tcp:\n```\nsudo ./service.sh client 192.168.10.123 192.168.10.16 8443 tcp\n```\n\n-   udp:\n```\nsudo ./service.sh client 192.168.10.123 192.168.10.16 8443 udp\n```\n\n## Server service log\nyou can see service logs with this👇 command.\n```bash\nsudo journalctl -xefu p2iServer.service\n```\n\n## Client service log\nyou can see service logs with this👇 command.\n```bash\nsudo journalctl -xefu p2iClient.service\n```\n\n\n## Logger\nchose write log on stdout or file or devNull.\u003cbr /\u003e\nuse `-log` flage to do this.\u003cbr /\u003e\nstdout(default) = 0\nfile = 1\ndevNull = 2\n\n-   server:\n```\nsudo ./proxy2icmp -type server -log 2\n```\n-   client:\n```\nsudo ./proxy2icmp -type client -encryption -l :4455 -s 192.168.10.123 -t 192.168.10.16:8181 -tcp 1 -log 1\n```\n\n\n ## (Optional) Disable system default ping\n```\necho 1 \u003e /proc/sys/net/ipv4/icmp_echo_ignore_all\n```\n\n## Cross compile\nafter you installing go , you can cross compile this tool to any os and any architecture that go supported:\u003c/br\u003e\nyou can build exe file for linux with this👇 go command statically linked shared librarys.\u003c/br\u003e\nwindows:\n-   386:\n```sh\nGOOS=windows GOARCH=386 CGO_ENABLED=0 go build -o proxy2icmp_windows-386.exe -ldflags=\"-extldflags=-static\"\n```\n-   arm64:\n```sh\nGOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -o proxy2icmp_windows-amd64.exe -ldflags=\"-extldflags=-static\"\n```\n\nlinux:\n-   386:\n```sh\nGOOS=linux GOARCH=386 CGO_ENABLED=0 go build -o proxy2icmp_linux-386 -ldflags=\"-extldflags=-static\"\n```\n-   amd64:\n```sh\nGOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o proxy2icmp_linux-amd64 -ldflags=\"-extldflags=-static\"\n```\n-   arm64:\n```sh\nGOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o proxy2icmp_linux-arm64 -ldflags=\"-extldflags=-static\"\n```\n\nOR \u003c/br\u003e\n```sh\nmake build-all\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgopy-art%2Fproxy2icmp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgopy-art%2Fproxy2icmp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgopy-art%2Fproxy2icmp/lists"}