Skip to content

Feature Request: Add UPnP Support to Enhance Convenience for Soft Router Users #330

@Ehco1996

Description

@Ehco1996

Description:

The primary objective of this feature request is to integrate UPnP (Universal Plug and Play) functionality into ehco. This enhancement aims to significantly simplify the user experience for individuals utilizing soft routers.

Here's an example of a standard RelayRule configuration:

{
  "listen": "127.0.0.1:1234",
  "listen_type": "raw",
  "transport_type": "raw",
  "label": "relay1",
  "tcp_remotes": [
    "0.0.0.0:5201"
  ]
}

To facilitate this feature, it is proposed to add a new field: "enable_upnp": true/false.

When a rule is identified with UPnP enabled, ehco will leverage a UPnP client to map the specified listen_port (for instance, port 1234 in the example above) to the public internet. This process aims to automate port forwarding, thereby reducing manual configuration steps and improving accessibility for users with dynamic IP addresses or those behind NATs.

By implementing UPnP support, ehco can offer a more user-friendly and efficient setup process for its users, making it an even more powerful tool for traffic forwarding in diverse networking environments.

Related code

Additional Information

By the way, I recommend implementing a separate UPnP client within the pkg directory. This client can then be utilized to integrate the UPnP feature within the internal/relay module. This approach will help in maintaining a clean separation of concerns and enhance the modularity of the codebase, making it easier to manage and extend the UPnP functionality in the future.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions