ShadowsocksR-Live / overtls

A simple proxy tunnel, minimalist tool for bypassing the GFW.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Suggestion: Rename overtls to "SOCKS over TLS" or "SOCKS+TLS"

us254 opened this issue · comments

Hello overtls developers,

After reviewing the code and functionality of overtls, I believe it would be more accurate to rename the project to "SOCKS over TLS" or "SOCKS+TLS" instead of "over TLS". Here are the reasons why:

  1. SOCKS5 protocol usage:
    overtls heavily relies on the SOCKS5 protocol for client communication and traffic forwarding. This can be seen in the usage of types and functions from the socks5_impl crate in the client.rs file. For example:

    use socks5_impl::{
        protocol::{Address, Reply},
        server::{
            auth::{NoAuth, UserKeyAuth},
            connection::connect::NeedReply,
            AuthAdaptor, ClientConnection, Connect, IncomingConnection, Server,
        },
    };
  2. TLS encryption:
    While overtls does use TLS encryption for secure communication, it is not the only protocol involved. The TLS functionality is implemented in the tls.rs file, but it is used in conjunction with the SOCKS5 protocol. For instance:

    pub(crate) async fn create_tls_ws_stream(
        svr_addr: SocketAddr,
        dst_addr: Option<Address>,
        config: &Config,
        udp_tunnel: Option<bool>,
    ) -> Result<WsTlsStream> {
        // ...
    }
  3. WebSocket transport with TLS support:
    overtls uses WebSocket as the transport protocol, with optional TLS encryption. This can be seen in the usage of the tokio_tungstenite library and functions like create_tls_ws_stream in client.rs and server.rs.

  4. TCP and UDP traffic forwarding:
    The support for both TCP and UDP traffic forwarding is a characteristic of SOCKS5 proxies, and overtls implements this functionality using WebSocket as the transport protocol. This is evident in functions like handle_incoming, client_traffic_loop, websocket_traffic_handler, normal_tunnel, and create_udp_tunnel.

  5. Configuration options for SOCKS and TLS:
    The presence of configuration options for SOCKS and TLS settings in the Config object used throughout the codebase further indicates that overtls is designed to function as a SOCKS+TLS proxy.

Given these observations, I believe that renaming overtls to "SOCKS over TLS" or "SOCKS+TLS" would more accurately reflect its functionality and design. It would help users and developers better understand the nature of the project and its reliance on the SOCKS5 protocol in addition to TLS encryption.

Thank you for your attention to this project.
The main value of this project is to fight against the enslavement of the Chinese people by the totalitarian CCP regime.
The name is not the most important, the primary purpose is to be able to break GFW's information blockade stably and effectively.
The name overtls has been used for a long time.
If the name is changed rashly, many downstream projects will also need to be modified. It’s scary to think about it.

Thank you again for your approval of this project.