PHP code example of chengciming / tcp-port-mapping

1. Go to this page and download the library: Download chengciming/tcp-port-mapping library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

chengciming / tcp-port-mapping example snippets




return array(
    /**
     * 是否开启debug模式
     */
    'debug' => false,
    /**
     * 开启的协议类型
     *
     * 注意:每个类型对应***Conf.php文件配置,无配置等同未开启
     *
     */
    'protocol_support' => array(
        'http',
        'https',
        'ssh',
    ),
    /**
     * 服务端配置 - 管道监听端口
     */
    'channel_server'=>array(
        'ipaddress'=>'0.0.0.0',
        'port'=>10000
    ),
    /**
     * 基础配置
     */
    'worker'=>array(
        'client' => array(
            'daemonize' => true,  //是否后台运行
            'worker_num' => 4,  //工作进程数量
            'name' => 'Proxy', //服务名称
            'log_file' => ROOT_PATH . '/Storage/logs/proxy.client.log',  //日记文件
            'pid_file' => ROOT_PATH . '/Storage/pid/proxy.client.pid',  //服务PID文件
            'stdout_file' => '',  //屏幕打印输出到文件,不设置或者为空则打印到频幕
        ),
        'server' => array(
            'daemonize' => true,  //是否后台运行
            'worker_num' => 4,  //工作进程数量
            'name' => 'Proxy', //服务名称
            'log_file' => ROOT_PATH . '/Storage/logs/proxy.server.log',  //日记文件
            'pid_file' => ROOT_PATH . '/Storage/pid/proxy.server.pid',  //服务PID文件
            'stdout_file' => '',  //屏幕打印输出到文件,不设置或者为空则打印到频幕
        )
    ),
);



return array(
    /**
     * 授权码,唯一码
	 * 服务器会验证此唯一码
     */
    \Mapping\Application\Library\Package\Attribute::ATTR_PRIMARY => 'test1',
    /**
     * 代理服务器 - 客户端用的
     */
    'channel_server'=>array(
        'ipaddress'=>'127.0.0.1',   // 客户端连接管道的目标IP,对应Config.php的channel_server.ipaddress
        'port'=>10000   // 客户端连接管道的目标端口,对应Config.php的channel_server.port
    ),
    /**
     * 被代理服务器 - 客户端用的
     */
    'proxy_client'=>array(
        'ipaddress'=>'127.0.0.1',  // 需要被映射出去的目标地址
        'port'=>80  // 需要被映射出去的目标端口
    ),
    /**
     * 允许授权的授权码与端口 - 服务器用的
     */
    'allow_auth' => array(
        // 唯一码 => array(port => 端口)
        'test1' => array(
            'ipaddress' => '0.0.0.0',
            'port' => 1231,  // 外网端口
        ),
    )
);
shell
[composer@localhost test]# cd tcp-port-mapping
[composer@localhost tcp-port-mapping]# php client start
[composer@localhost tcp-port-mapping]# php server start

新增加telnet协议配置文件(可复制HttpConf.php):Config/TelnetConf.php
开启telnet协议:Config/Config.php  -->  protocol_support加telnet

新增加telnet协议客户端处理文件:Application/Kernel/Protocol/Client/Telnet.php
新增加telnet协议服务端处理文件:Application/Kernel/Protocol/Server/Telnet.php
shell
[root@localhost tcp-port-mapping]# php client start     // 开启客户端服务
[root@localhost tcp-port-mapping]# php client stop      // 关闭客户端服务
[root@localhost tcp-port-mapping]# php client restart   // 重启客户端服务
[root@localhost tcp-port-mapping]# php client reload    // 重载客户端服务
shell
[root@localhost tcp-port-mapping]# php server start     // 开启服务端服务
[root@localhost tcp-port-mapping]# php server stop      // 关闭服务端服务
[root@localhost tcp-port-mapping]# php server restart   // 重启服务端服务
[root@localhost tcp-port-mapping]# php server reload    // 重载服务端服务