Caterpillar Proxy - The simple and parasitic web proxy with SPAM filter (formerly, php-httpproxy)
Go to file
2024-11-08 05:32:13 +09:00
.github Update FUNDING.yml 2024-11-06 16:21:45 +09:00
assets Update index.php 2024-11-08 05:32:13 +09:00
plugins@59833335c3 Fix bugs 2024-10-25 15:27:45 +09:00
.env.example Create .env.example 2024-08-28 20:15:50 +09:00
.gitignore Add roadmap image 2024-07-11 20:53:06 +09:00
.gitmodules Add submodule caterpillar-plugins 2024-10-18 22:07:28 +09:00
base.py Fix bugs 2024-10-25 15:27:45 +09:00
caterpillar.service Create caterpillar.service 2024-02-21 02:24:06 +09:00
console.html Update console.html 2024-11-08 03:45:41 +09:00
Dockerfile Create Dockerfile 2024-03-06 15:11:13 +09:00
download_certs.bat Rename certs/download_certs.bat to download_certs.bat 2024-07-11 16:43:28 +09:00
download_certs.sh feat: refactoring typed programing 2024-08-31 14:37:21 +09:00
LICENSE Revert LICENSE to MIT 2024-10-24 14:43:08 +09:00
README.md Update README.md 2024-10-19 17:39:37 +09:00
requirements.txt Fix bugs when dispatch the RPC method 2024-10-25 08:59:49 +09:00
ruff.toml feat: ruff exclude append assets data 2024-07-11 15:19:50 +09:00
server.py Update server.py 2024-11-04 18:00:31 +09:00
smtp.py feat: refactoring typed programing 2024-08-31 15:48:35 +09:00
web.py Fix bugs when dispatch the RPC method 2024-10-25 08:59:49 +09:00

gnh1201/caterpillar

FOSSA Status DOI 10.5281/zenodo.13346533

Caterpillar Proxy - The simple web debugging proxy (formerly, php-httpproxy)

Cover image - Caterpillar on a tree looking at a rocket flying over the clouds

You can connect all physical and logical channels with communication capabilities to the web!

Imagine various means such as time machines, satellites, quantum technology, sound, light, the Philosopher's Stone, or Excalibur, just like in science fiction movies! Caterpillar Proxy supports the implementation of extensions for Connectors, Filters, and RPC methods to bring your imagination to life.

Use cases

How it works

Basic structure

* You <-> Proxy client (Python) <-> Parasitized proxy server (Optional, PHP/LAMP) <-> On the Web
* You <-> Proxy client (Python) <-> Connector extensions (Optional, Python) <-> On the Web

For example, build a simple web debugging proxy on the shared servers.

Stateful mode

This project supports two modes of connection. The default is stateless. You can use the stateful mode to avoid being constrained by transfer capacity limits. See the Stateful mode (catswords-oss.rdbl.io).

Connector extensions

This project supports the implementation of Connector extensions. The provided basic examples include implementations of web archives (caches) and serial communication as Connector extensions. Go to the caterpillar-plugins repository (github.com)

(Optional) Before to use

If you have a server that will be parasitized and you want to proxy it, you should upload the index.php file to a shared server. The index.php file is located in the assets/php directory within this repository.

How to use

  1. Write a file .env(Linux) or settings.ini(Windows). Like this:
[settings]
PORT=5555
SERVER_URL=localhost
SERVER_CONNECTION_TYPE=
CA_KEY=ca.key
CA_CERT=ca.crt
CERT_KEY=cert.key
CERT_DIR=certs/
OPENSSL_BINPATH=openssl
CLIENT_ENCODING=utf-8
USE_EXTENSIONS=wayback.Wayback,bio.PyBio

Note: If using Caterpillar Proxy (Python) alone, set SERVER_URL=localhost. Otherwise, use the endpoint URL of the Worker script (PHP or Java), e.g., SERVER_URL=http://example.org.

  • (Optional) Create a certificate for SSL decryption
chmod +x configure_certs.sh
./configure_certs.sh
sudo apt-get install -y ca-certificates
sudo cp ca.crt /usr/local/share/ca-certificates/caterpillar-ca.crt
sudo update-ca-certificates
  1. Run python3 server.py and set HTTP(S) proxy in your web browser (e.g. Firefox, Chromium)

  2. Test 100MB/SSL, 1GB/SSL, 10GB/SSL download and check the speed.

  3. Enjoy it

  4. (Optional) With Cloudflare, we can expect to accelerate the 4x speed and reduce the network stuck.

Extensions

Thanks to

Contributors

Contributors

Our roadmap

Roadmap image

Report abuse

License

FOSSA Status