{"id":51038916,"url":"https://github.com/ipmartnetwork/ws-tunnel","last_synced_at":"2026-06-22T09:01:21.975Z","repository":{"id":243392143,"uuid":"812303700","full_name":"iPmartNetwork/WS-Tunnel","owner":"iPmartNetwork","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-09T13:48:16.000Z","size":44,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-29T01:25:05.178Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/iPmartNetwork.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-06-08T14:07:53.000Z","updated_at":"2024-08-04T09:46:16.000Z","dependencies_parsed_at":"2024-06-08T15:29:30.987Z","dependency_job_id":"4ce3f9e1-966e-4b6c-9fd7-b9e5b8c32c50","html_url":"https://github.com/iPmartNetwork/WS-Tunnel","commit_stats":null,"previous_names":["ipmartnetwork/ws-tunnel"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/iPmartNetwork/WS-Tunnel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FWS-Tunnel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FWS-Tunnel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FWS-Tunnel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FWS-Tunnel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iPmartNetwork","download_url":"https://codeload.github.com/iPmartNetwork/WS-Tunnel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iPmartNetwork%2FWS-Tunnel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34641636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"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":"2026-06-22T09:01:20.011Z","updated_at":"2026-06-22T09:01:21.955Z","avatar_url":"https://github.com/iPmartNetwork.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cpicture\u003e\n\u003cimg width=\"160\" height=\"160\"  alt=\"XPanel\" src=\"https://github.com/iPmartNetwork/iPmart-SSH/blob/main/images/logo.png\"\u003e\n\u003c/picture\u003e\n  \u003c/p\u003e \n\u003cp align=\"center\"\u003e\n\u003ch1 align=\"center\"/\u003eWS Tunnel\u003c/h1\u003e\n\u003ch6 align=\"center\"\u003eتانل بر اساس وب سوکت \u003ch6\u003e\n\u003c/p\u003e\n\n\n\n## پیش نیاز\n\n\n سیتم عامل های تست شده  (ubuntu,debian,centos,fedora)\n\n---\n## نصب\n\nبر روی هر دو سرور خارج و ایران اجرا شود .\n\n\n```\nbash \u003c(curl -Ls https://raw.githubusercontent.com/ipmartnetwork/WS-Tunnel/main/wstunnel.sh)\n\n```\n\n---\n[لینک اصلی پروژه](https://github.com/erebe/wstunnel/tree/main)\n\n\n[تشکر ویژه از پیمان عزیز](https://github.com/Ptechgithub)\n\n\n---\n\n### لیست دستورات\n```\nUse the websockets protocol to tunnel {TCP,UDP} traffic\nwsTunnelClient \u003c---\u003e wsTunnelServer \u003c---\u003e RemoteHost\nUse secure connection (wss://) to bypass proxies\n\nClient:\nUsage: wstunnel client [OPTIONS] \u003cws[s]://wstunnel.server.com[:port]\u003e\n\nArguments:\n  \u003cws[s]://wstunnel.server.com[:port]\u003e  Address of the wstunnel server\n                                        Example: With TLS wss://wstunnel.example.com or without ws://wstunnel.example.com\n\nOptions:\n  -L, --local-to-remote \u003c{tcp,udp,socks5,stdio}://[BIND:]PORT:HOST:PORT\u003e\n          Listen on local and forwards traffic from remote. Can be specified multiple times\n          examples:\n          'tcp://1212:google.com:443'      =\u003e       listen locally on tcp on port 1212 and forward to google.com on port 443\n\n          'udp://1212:1.1.1.1:53'          =\u003e       listen locally on udp on port 1212 and forward to cloudflare dns 1.1.1.1 on port 53\n          'udp://1212:1.1.1.1:53?timeout_sec=10'    timeout_sec on udp force close the tunnel after 10sec. Set it to 0 to disable the timeout [default: 30]\n\n          'socks5://[::1]:1212'            =\u003e       listen locally with socks5 on port 1212 and forward dynamically requested tunnel\n\n          'tproxy+tcp://[::1]:1212'        =\u003e       listen locally on tcp on port 1212 as a *transparent proxy* and forward dynamically requested tunnel\n          'tproxy+udp://[::1]:1212?timeout_sec=10'  listen locally on udp on port 1212 as a *transparent proxy* and forward dynamically requested tunnel\n                                                    linux only and requires sudo/CAP_NET_ADMIN\n\n          'stdio://google.com:443'         =\u003e       listen for data from stdio, mainly for `ssh -o ProxyCommand=\"wstunnel client -L stdio://%h:%p ws://localhost:8080\" my-server`\n  -R, --remote-to-local \u003c{tcp,udp}://[BIND:]PORT:HOST:PORT\u003e\n          Listen on remote and forwards traffic from local. Can be specified multiple times.\n          examples:\n          'tcp://1212:google.com:443'      =\u003e     listen on server for incoming tcp cnx on port 1212 and forward to google.com on port 443 from local machine\n          'udp://1212:1.1.1.1:53'          =\u003e     listen on server for incoming udp on port 1212 and forward to cloudflare dns 1.1.1.1 on port 53 from local machine\n          'socks://[::1]:1212'             =\u003e     listen on server for incoming socks5 request on port 1212 and forward dynamically request from local machine\n      --socket-so-mark \u003cINT\u003e\n          (linux only) Mark network packet with SO_MARK sockoption with the specified value.\n          You need to use {root, sudo, capabilities} to run wstunnel when using this option\n  -c, --connection-min-idle \u003cINT\u003e\n          Client will maintain a pool of open connection to the server, in order to speed up the connection process.\n          This option set the maximum number of connection that will be kept open.\n          This is useful if you plan to create/destroy a lot of tunnel (i.e: with socks5 to navigate with a browser)\n          It will avoid the latency of doing tcp + tls handshake with the server [default: 0] \n      --tls-sni-override \u003cDOMAIN_NAME\u003e\n          Domain name that will be use as SNI during TLS handshake\n          Warning: If you are behind a CDN (i.e: Cloudflare) you must set this domain also in the http HOST header.\n                   or it will be flagged as fishy and your request rejected\n      --tls-verify-certificate\n          Enable TLS certificate verification.\n          Disabled by default. The client will happily connect to any server with self signed certificate.\n  -p, --http-proxy \u003chttp://USER:PASS@HOST:PORT\u003e\n          If set, will use this http proxy to connect to the server\n      --http-upgrade-path-prefix \u003cHTTP_UPGRADE_PATH_PREFIX\u003e\n          Use a specific prefix that will show up in the http path during the upgrade request.\n          Useful if you need to route requests server side but don't have vhosts [default: morille]\n      --http-upgrade-credentials \u003cUSER[:PASS]\u003e\n          Pass authorization header with basic auth credentials during the upgrade request.\n          If you need more customization, you can use the http_headers option.\n      --websocket-ping-frequency-sec \u003cseconds\u003e\n          Frequency at which the client will send websocket ping to the server. [default: 30]\n      --websocket-mask-frame\n          Enable the masking of websocket frames. Default is false\n          Enable this option only if you use unsecure (non TLS) websocket server and you see some issues. Otherwise, it is just overhead.\n  -H, --http-headers \u003cHEADER_NAME: HEADER_VALUE\u003e\n          Send custom headers in the upgrade request\n          Can be specified multiple time\n  -h, --help\n          Print help\n\nServer:\nUsage: wstunnel server [OPTIONS] \u003cws[s]://0.0.0.0[:port]\u003e\n\nArguments:\n  \u003cws[s]://0.0.0.0[:port]\u003e  Address of the wstunnel server to bind to\n                            Example: With TLS wss://0.0.0.0:8080 or without ws://[::]:8080\n\nOptions:\n      --socket-so-mark \u003cINT\u003e\n          (linux only) Mark network packet with SO_MARK sockoption with the specified value.\n          You need to use {root, sudo, capabilities} to run wstunnel when using this option\n      --websocket-ping-frequency-sec \u003cseconds\u003e\n          Frequency at which the server will send websocket ping to client.\n      --websocket-mask-frame\n          Enable the masking of websocket frames. Default is false\n          Enable this option only if you use unsecure (non TLS) websocket server and you see some issues. Otherwise, it is just overhead.\n      --restrict-to \u003cDEST:PORT\u003e\n          Server will only accept connection from the specified tunnel information.\n          Can be specified multiple time\n          Example: --restrict-to \"google.com:443\" --restrict-to \"localhost:22\"\n  -r, --restrict-http-upgrade-path-prefix \u003cRESTRICT_HTTP_UPGRADE_PATH_PREFIX\u003e\n          Server will only accept connection from if this specific path prefix is used during websocket upgrade.\n          Useful if you specify in the client a custom path prefix and you want the server to only allow this one.\n          The path prefix act as a secret to authenticate clients\n          Disabled by default. Accept all path prefix. Can be specified multiple time\n      --tls-certificate \u003cFILE_PATH\u003e\n          [Optional] Use custom certificate (.crt) instead of the default embedded self signed certificate.\n      --tls-private-key \u003cFILE_PATH\u003e\n          [Optional] Use a custom tls key (.key) that the server will use instead of the default embedded one\n  -h, --help\n          Print help\n```\n---\n\n\n\n\n\n\n\n# تلگرام\n\n[@ipmart_network](https://t.me/ipmart_network)\n\n[@iPmart Group](https://t.me/ipmartnetwork_gp)\n\n\n\n\n # حمایت از ما :hearts:\nحمایت های شما برای ما دلگرمی بزرگی است\u003cbr\u003e \n\u003cp align=\"left\"\u003e\n\u003ca href=\"https://plisio.net/donate/kB7QU7f7\" target=\"_blank\"\u003e\u003cimg src=\"https://plisio.net/img/donate/donate_light_icons_mono.png\" alt=\"Donate Crypto on Plisio\" width=\"240\" height=\"80\" /\u003e\u003c/a\u003e\u003cbr\u003e\n\t\n|                    TRX                   |                       BNB                         |                    Litecoin                       |\n| ---------------------------------------- |:-------------------------------------------------:| -------------------------------------------------:|\n| ```TJbTYV1fFo2485sYMyajxGPLFzxmNmPrNA``` |  ```0x4af3de9b303a8d43105e284823d95b4c600961a3``` | ```MPrkzFiNtw4Rg67bbZB6gCxa9LV87orABM``` |\t\n\n\u003c/p\u003e\t\n\n\n\n\n\u003cp align=\"center\"\u003e\n\u003cpicture\u003e\n\u003cimg width=\"160\" height=\"160\"  alt=\"XPanel\" src=\"https://github.com/iPmartNetwork/iPmart-SSH/blob/main/images/logo.png\"\u003e\n\u003c/picture\u003e\n  \u003c/p\u003e \n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipmartnetwork%2Fws-tunnel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipmartnetwork%2Fws-tunnel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipmartnetwork%2Fws-tunnel/lists"}