8000 GitHub - yosebyte/passport at v1.1.2
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Powerful yet simple solution for network tunneling and port forwarding with access control all using 1-URL command.

License

Notifications You must be signed in to change notification settings

yosebyte/passport

Repository files navigation

GitHub License Go Report Card GitHub Release GitHub Actions Workflow Status GitHub last commit GitHub commits since latest release

passport

"Access pass required to pass through port."

Overview

Passport is a powerful connection management tool that simplifies network tunneling, port forwarding and more. By seamlessly integrating three distinct running modes within a single binary file, Passport bridges the gap between different network environments, redirecting services and handling connections seamlessly, ensuring reliable network connectivity and ideal network environment. Also with highly integrated authorization handling, Passport empowers you to efficiently manage user permissions and establish uninterrupted data flow, ensuring that sensitive resources remain protected while applications maintain high performance and responsiveness.

Features

  • Unified Operation: Passport can function as a server, client, or broker, three roles from a single executable file.

  • Authorization Handling: By IP address handling, Passport ensures only authorized users gain access to sensitive resources.

  • In-Memory Certificate: Provides a self-signed HTTPS certificate with a one-year validity, stored entirely in memory.

  • Auto Reconnection: Providing robust short-term reconnection capabilities, ensuring uninterrupted service.

  • Connection Updates: In scenarios where connection is interrupted, Passport supports real-time connection updates.

  • Port Forwarding: Efficiently manage and redirect your TCP and/or UDP services from one port to entrypoints everywhere.

  • Zero Dependencies: Fully self-contained, with no external depende 9A8B ncies, ensuring a simple and efficient setup.

  • Zero Configuration File: Simply execute with a single URL command, making it ideal for containerized environments.

Usage

To run the program, provide a URL specifying the mode and connection addresses. The URL format is as follows:

server://linkAddr/targetAddr
client://linkAddr/targetAddr
broker://linkAddr/targetAddr

Note that only server and broker mode support authorization Handling, which you can just add auth entry after #. For example:

server://linkAddr/targetAddr#authScheme://authAddr/secretPath
broker://linkAddr/targetAddr#authScheme://authAddr/secretPath
  • authScheme: The option allows you to choose between using HTTP or HTTPS.
  • authAddr: The server address and port designated for authorization handling.
  • secretPath: The secret endpoint for processing authorization requests.

Server Mode

  • linkAddr: The address for accepting client connections. For example, :10101.
  • targetAddr: The address for listening to external connections. For example, :10022.

Run as Server

./passport server://:10101/:10022
  • This command will listen for client connections on port 10101 , listen and forward data to port 10022.

Run as Server with authorization

./passport server://:10101/:10022#https://hostname:8443/server
  • The server handles authorization at https://hostname:8443/server, on your visit and your IP logged.
  • The server will listen for client connections on port 10101 , listen and forward data to port 10022.

Client Mode

  • linkAddr: The address of the server to connect to. For example, server_ip:10101.
  • targetAddr: The address of the target service to connect to. For example, 127.0.0.1:22.

Run as Client

./passport client://server_hostname_or_IP:10101/127.0.0.1:22
  • This command will establish link with server_hostname_or_IP:10101 , connect and forward data to 127.0.0.1:22.

Broker Mode

  • linkAddr: The address for accepting client connections. For example, :10101.
  • targetAddr: The address of the target service to connect to. For example, 127.0.0.1:22.

Run as Broker

./passport broker://:10101/127.0.0.1:22
  • This command will listen both tcp and udp on port 10101 , connect and forward data to 127.0.0.1:22.

Run as Broker with authorization

./passport broker://:10101/127.0.0.1:22#https://hostname:8443/broker
  • The server handles authorization at https://hostname:8443/broker, on your visit and your IP logged.
  • This command will listen both tcp and udp on port 10101 , connect and forward data to 127.0.0.1:22.

Container Usage

You can also run Passport using container. The image is available at ghcr.io/yosebyte/passport.

To run the container in server mode with or without authorization:

docker run --rm ghcr.io/yosebyte/passport server://:10101/:10022#https://hostname:8443/server
docker run --rm ghcr.io/yosebyte/passport server://:10101/:10022

To run the container in client mode:

docker run --rm ghcr.io/yosebyte/passport client://server_hostname_or_IP:10101/127.0.0.1:22

To run the container in server mode with or without authorization:

docker run --rm ghcr.io/yosebyte/passport broker://:10101/127.0.0.1:22#https://hostname:8443/broker
docker run --rm ghcr.io/yosebyte/passport broker://:10101/127.0.0.1:22

License

This project is licensed under the MIT License. See the LICENSE file for details.

Stars

Stargazers over time

About

Powerful yet simple solution for network tunneling and port forwarding with access control all using 1-URL command.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 
0