{"_id":"@2players/jet","_rev":"4-9c9a1ba1bb454de605c60084eab23c70","name":"@2players/jet","description":"An HTTP pre-proxy for SOCKS.","dist-tags":{"latest":"4.4.0"},"versions":{"4.3.4":{"name":"@2players/jet","version":"4.3.4","description":"An HTTP pre-proxy for SOCKS.","bin":{"jet":"bin/jet"},"files":["bin/","lib/","config.js","utils/","README.md"],"dependencies":{"colors":"1.1.2","commander":"^2.9.0","dnscache":"^1.0.1","ip":"^1.1.3","mkdirp":"^0.5.1","progress":"^1.1.8","run-series":"^1.1.4","socks":"1.1.9"},"scripts":{"start":"bin/jet sync-geoip && bin/jet run","test":"echo \"Error: no test specified\" && exit 1","lint":"standard"},"author":{"name":"m31271n"},"license":"GPL-3.0","devDependencies":{"standard":"^8.6.0"},"gitHead":"9fe8f21774d90b9e9ac73363c9072d7c19552aae","_id":"@2players/jet@4.3.4","_npmVersion":"5.0.0","_nodeVersion":"8.0.0","_npmUser":{"name":"m31271n","email":"m31271n@gmail.com"},"dist":{"integrity":"sha512-gd88nVzTtI6716svWWfvJMI4hZCMthH8JNZ1J6am+K0fFZJ5t9VgY5F5uyoTDCcoHND84yyKKN7Fgfs1jtJ0UQ==","shasum":"99aa1344e9a7a852fc1ab35421280c9fcf4bc65e","tarball":"https://registry.npmjs.org/@2players/jet/-/jet-4.3.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSO9gxe6uRXvtIbBnCFAdMsgJtrJEkPG+Ei/q2DTirewIgXUsRBVdO2szWyyhoHT/uYzOdrL7R8MUHyCw9V0lQDDQ="}]},"maintainers":[{"name":"m31271n","email":"m31271n@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jet-4.3.4.tgz_1496240754577_0.12808385561220348"}},"4.4.0":{"name":"@2players/jet","version":"4.4.0","description":"An HTTP pre-proxy for SOCKS.","bin":{"jet":"bin/jet"},"files":["bin/","lib/","config.js","utils/","README.md"],"dependencies":{"colors":"1.1.2","commander":"^2.9.0","dnscache":"^1.0.1","ip":"^1.1.3","mkdirp":"^0.5.1","progress":"^1.1.8","run-series":"^1.1.4","socks":"1.1.9","throng":"^4.0.0"},"scripts":{"start":"bin/jet sync-geoip && bin/jet run","test":"echo \"Error: no test specified\" && exit 1","lint":"standard"},"author":{"name":"m31271n"},"license":"GPL-3.0","devDependencies":{"standard":"^8.6.0"},"gitHead":"938d73e65d154266f9802bd276d6781638e90af6","_id":"@2players/jet@4.4.0","_shasum":"8d776e90c5819943e19d54f7d92165a917bb0795","_from":".","_npmVersion":"3.10.10","_nodeVersion":"8.0.0","_npmUser":{"name":"m31271n","email":"m31271n@gmail.com"},"dist":{"shasum":"8d776e90c5819943e19d54f7d92165a917bb0795","tarball":"https://registry.npmjs.org/@2players/jet/-/jet-4.4.0.tgz","integrity":"sha512-CJmLlOZxRcIZPNAo6jJVN8PqXE6lktsF28S43rjUEBPhmyP/CBpzKM3wFnasLJa+lcTPCgowYag23Jyk0f+K1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA5kaSll4VBe9i8tQF0dxZvU2QgVcjdJXsl+aRrJbq6xAiEA1K7OeWw2sp5F5M4jD/I0oyhG5HNaSyOsgf+T1xfTM+I="}]},"maintainers":[{"name":"m31271n","email":"m31271n@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jet-4.4.0.tgz_1499771895263_0.01722598378546536"}}},"readme":"<h1 align=\"center\">jet</h1>\n\n<p align=\"center\">An HTTP pre-proxy for SOCKS.</p>\n\n<p align=\"center\">\n  <a href=\"http://standardjs.com/\" target=\"_blank\"><img src=\"https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat\" alt=\"Standard - JavaScript Style Guide\"></a>\n  <a href=\"http://m31271n.com/\" target=\"_blank\"><img src=\"https://img.shields.io/badge/made%20by-m31271n-brightgreen.svg?style=flat\" alt=\"Made by m31271n\"></a>\n  <img src=\"https://img.shields.io/badge/license-GPL--3.0-brightgreen.svg?style=flat\" alt=\"License - GPL-3.0\">\n</p>\n\n> The name \"jet\" is inspired by Jet Black from Cowboy Bepop.\n\n# Index\n<!-- start: markdown-toc -->\n\n\n- [Index](#index)\n    - [What does Jet do?](#what-does-jet-do)\n    - [Features](#features)\n    - [Requirements](#requirements)\n    - [Installation](#installation)\n    - [Setting Jet via environment variables](#setting-jet-via-environment-variables)\n    - [Running Jet](#running-jet)\n    - [Configure All Your Application To Use Jet.](#configure-all-your-application-to-use-jet)\n        - [For GUI](#for-gui)\n        - [For CLI](#for-cli)\n    - [Test The Effects](#test-the-effects)\n        - [Test Jet is Working Or Not](#test-jet-is-working-or-not)\n        - [Test Your Shell Environment Is Set Properly Or Not](#test-your-shell-environment-is-set-properly-or-not)\n    - [Advanced Features](#advanced-features)\n        - [Hot switching mode](#hot-switching-mode)\n    - [Uninstallation](#uninstallation)\n    - [Reference](#reference)\n    - [Similar Tools](#similar-tools)\n\n<!-- end: markdown-toc -->\n\n## What does Jet do?\n```\n                                      ┌──────────────────────┐\n                                      │SOCKS v4/v4a/v5 Proxy │\n                                ┌────▶│  (ShadowSocks etc.)  │──────┐\n                                │     └──────────────────────┘      │\n                                │                                   ▼\n     ┌──────────────────┐     ┌───┐                            ┌────────┐\n     │ User Application │────▶│Jet│───────────────────────────▶│Internet│\n     └──────────────────┘     └───┘                            └────────┘\n```\n\n## Features\n\n+ support SOCKS v4/v4a/v5\n+ support DNS cache\n+ route requests via GeoIP CN automatically\n+ hot switching between auto / direct / tunnel mode\n\n## Requirements\n\n+ Node.js >= 8.0.0\n\n## Installation\n\n    npm install -g @2players/jet\n\n## Setting Jet via environment variables\nFormat instruction:\n\n```\nVAR - DEFAULT VALUE\n```\n\nChange SOCKS Proxy setting via 3 environment variables:\n\n* `JET_SOCKS_ADDR` - `127.0.0.1`\n* `JET_SOCKS_PORT` - `1080`\n* `JET_SOCKS_TYPE` - `5`\n\nChange setting of listening:\n\n* `JET_LISTEN_ADDR` - `127.0.0.1`\n* `JET_LISTEN_PORT` - `9527`\n\n## Running Jet\n```\n# sync GeoIP info\nshell> jet sync-geoip\n\n# jet runs on 127.0.0.1:9527 by default\nshell> jet run\n\n# run jet on another port, like 9600\nshell> JET_LISTEN_PORT=9600 jet run\n\n# after a period of time, you maybe want to update GeoIP info,\n# just sync it again\nshell> jet sync-geoip\n```\n\n## Configure All Your Application To Use Jet.\n### For GUI\nI think you know how to set this. It's simple.\n\n### For CLI\nSuppose that Jet is running at `127.0.0.1:9527`.\n\n```\nCHANNEL=\"http://127.0.0.1:9527\"\nNO_CHANNEL=\"localhost,127.0.0.1\"\n\nPROXY_ENV=\"http_proxy ftp_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY\"\nNO_PROXY_ENV=\"no_proxy NO_PROXY\"\nfor envar in $PROXY_ENV; do\n    export $envar=$CHANNEL\ndone\n\nfor envar in $NO_PROXY_ENV; do\n    export $envar=$NO_CHANNEL\ndone\n\nunset CHANNEL\nunset NO_CHANNEL\nunset PROXY_ENV\nunset NO_PROXY_ENV\n```\n\nAdd above script to your shell init file, like `~/.bashrc`. Then `source` it.\n\n> If you are using other shell, set above environment variables by yourself.\n\n## Test The Effects\n### Test Jet is Working Or Not\n```\nshell> curl --proxy localhost:9527 https://www.google.com/\n```\n\nIf you get right content, then jet is working.\n\n### Test Your Shell Environment Is Set Properly Or Not\n```\nshell> curl https://www.google.com/\n```\n\nIf you get right content, then jet is working. And your shell environment is set properly, too.\n\n## Advanced Features\n### Hot switching mode\nBy defaut, jet is running in **auto** mode (a mode that routes request according GeoIP). In addition to this mode, there are two other mode:\n+ **direct** - request directly, globally\n+ **tunnel** - request through SOCKS proxy globally\n\nWhen you run jet in terminal, you'll get this:\n\n```\n[INFO] Reading GeoIP info.\n[INFO] DNS: 127.0.0.1\n[INFO] Listening on 127.0.0.1:9527.\n> TUNNEL 127.0.0.1 -> https://live.github.com:443/\n> TUNNEL 127.0.0.1 -> https://live.github.com:443/\n```\n\nIn order to hot switch current mode, just type supported mode directly. Take **direct** mode as an example:\n\n```\n[INFO] Reading GeoIP info.\n[INFO] DNS: 127.0.0.1\n[INFO] Listening on 127.0.0.1:9527.\n> TUNNEL 127.0.0.1 -> https://live.github.com:443/\n> TUNNEL 127.0.0.1 -> https://live.github.com:443/\ndirect  <- the mode you type\n[INFO] Switch to direct mode\n> DIRECT 127.0.0.1 -> https://live.github.com:443/\n```\n\n## Uninstallation\nIf you think jet is not suitable for you, remove it with following commands:\n\n```\n# remove npm package\nshell> npm uninstall -g jet\n\n# remove related directory\nshell> rm -rf ~/.config/jet\n```\n\n## Reference\n+ [HTTPS connections over proxy servers](http://stackoverflow.com/questions/516323/https-connections-over-proxy-servers)\n+ [HTTP Proxy in Node.js](http://www.catonmat.net/http-proxy-in-nodejs/)\n\n## Similar Tools\n+ [oyyd/http-proxy-to-socks](https://github.com/oyyd/http-proxy-to-socks)\n+ [bitinn/kneesocks](https://github.com/bitinn/kneesocks)\n","maintainers":[{"name":"m31271n","email":"m31271n@gmail.com"}],"time":{"modified":"2022-06-12T14:10:43.434Z","created":"2017-05-31T14:25:54.663Z","4.3.4":"2017-05-31T14:25:54.663Z","4.4.0":"2017-07-11T11:18:15.368Z"},"author":{"name":"m31271n"},"license":"GPL-3.0","readmeFilename":"README.md"}