A simple reverse proxy implementation in Golang that tunnels HTTP client requests through residential proxies in a specified locations, while maintaining a persistent session for the specified duration.
The proxy location is smartly determined by by analyzing incoming requests. It efficiently handles multiple concurrent sessions and is highly responsive.
Example use case: A web scraper or crawler for bypassing geo-restrictions, rate limits etc.
-
Clone the Repository:
git clone https://github.com/jmorganp/SProxy.git cd SProxy -
Install Dependencies: Run the following command to download the required Go modules:
go mod tidy
-
Set Up Configuration:
- Create a
config.yamlfile in the root directory (or use the provided exampleconfig.example.yaml). - Example
config.yaml:proxy-user: "your-username" proxy-pass: "your-password" tgBotToken: "123456789:your-telegram-bot-token" telegram_chat_ids: - 1234567890 - 9876543210
- Create a
-
Build the Project:
go build -o SProxy
This will create an executable binary named
SProxy. -
Verify the Build: Run the binary to ensure it works as expected:
./SProxy
-
Run the Project:
./SProxy -config=config.yaml
-
Command-line Options:
-config(optional): Path to the YAML configuration file. Default isconfig.yaml.
-
Example Output:
Proxy server started on port 8080 Listening for incoming requests...
- Proxy Management
- Secure Telegram Bot Integration (for Alerts)
- YAML Configuration Support
- Fork the repository.
- Create a new branch for your feature:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add some feature'. - Push the branch:
git push origin feature-name. - Create a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.