嘟嘟社区

哪位大佬教教我怎么玩nat


刚收完这个水墨家的99年付hinet,限制两个转发端口,能干点啥呢,富强都不爽,443和80开了就没有ssh的端口了
用workerman做个端口转发,贴点代码,就是根据各个端口数据的不同特征导向各自的端口

// tcp连接建立后
$worker->onConnect = function(TcpConnection $connection)
{
    // 设置连接的onMessage回调
    $connection->onMessage = function(TcpConnection $connection, $data)
    {
      if (strpos($data,’Sec-WebSocket-Version: 13′) !== false) {
        //echo "websocket rn";
        // 建立本地websocket端口的异步连接
        $connection_to_ws = new AsyncTcpConnection(‘tcp://127.0.0.1:8787’);
        // 设置将当前客户端连接的数据导向websocket端口的连接
        $connection->pipe($connection_to_ws);
        // 设置webscoket端口连接返回的数据导向客户端连接
        $connection_to_ws->pipe($connection);
        // 执行异步连接
        $connection_to_ws->connect();
        $connection_to_ws->send($data);
      } else if (strpos($data,’HTTP/1.1′) !== false) {
        //echo "http rn";
        // 建立本地http端口的异步连接
        $connection_to_http = new AsyncTcpConnection(‘tcp://127.0.0.1:8080’);
        // 设置将当前客户端连接的数据导向http端口的连接
        $connection->pipe($connection_to_http);
        // 设置http端口连接返回的数据导向客户端连接
        $connection_to_http->pipe($connection);
        // 执行异步连接
        $connection_to_http->connect();
        $connection_to_http->send($data);
      } else if (strpos($data,’redis’) !== false) { //在密码中一定加入redis关键字便于判断
        //echo "redis rn";
        // 建立本地redis端口的异步连接
        $connection_to_redis = new AsyncTcpConnection(‘tcp://127.0.0.1:6379’);
        // 设置将当前客户端连接的数据导向redis端口的连接
        $connection->pipe($connection_to_redis);
        // 设置redis端口连接返回的数据导向客户端连接
        $connection_to_redis->pipe($connection);
        // 执行异步连接
        $connection_to_redis->connect();
        $connection_to_redis->send($data);
      } else {
        //echo "ssh rn";
        // 建立本地ssh端口的异步连接
        $connection_to_ssh = new AsyncTcpConnection(‘tcp://127.0.0.1:22’);
        // 设置将当前客户端连接的数据导向ssh端口的连接
        $connection->pipe($connection_to_ssh);
        // 设置ssh端口连接返回的数据导向客户端连接
        $connection_to_ssh->pipe($connection);
        // 执行异步连接
        $connection_to_ssh->connect();
        $connection_to_ssh->send($data);
      }

一个ssh 一个魔法用
水墨家的ssh端口应该是另外的吧,不计数
一般都不给这俩端口吧
,刚开始都是这么过来的;
一个443不就够了

acm 发表于 2021-12-7 17:43
一个ssh 一个魔法用

我现在是放弃需要申请证书的魔法用途了,nat怎么申请证书都不对,搞不明白。。。后来上的酸酸,拿中转鸡拉了一下

kezhao 发表于 2021-12-7 17:46
,刚开始都是这么过来的;

老哥,推荐几个比较容易学到怎么玩nat的知识的博客吗

cnmkdq 发表于 2021-12-7 17:55
用workerman做个端口转发,贴点代码,就是根据各个端口数据的不同特征导向各自的端口

// tcp连接建立后

虽然没太看懂但是先mark一下