fabric1.4多机多节点环境下node客户端invoke链码的问题
 

其实是两个问题,第一个问题是主要问题。

第二个问题相关的怀疑只是瞎猜而已。

 

有点怀疑是容器网络问题,一般情况下, orderer在yaml设置的监听地址使用0.0.0.0, 我需要看下orderer,peer等yaml, 和一些出错的docker logs提示信息。

每个节点启动的时候务必使用docker log看下每个进程是否有些不正常的日志。


你可以上传个附件看下。

 

可以参考下https://github.com/zealzeng/kafka-orderer-demo, 对应文章在https://www.javatree.cn/news/49d1ee9c76564300a67586d94be5b439


所给的例子是peer, kafka orderer分开的,你的orderer应该是solo吧。参考下对应的orderer,peer的yaml配置。

docker-compose-orderer1.yaml,核心些的是LISTENADDRESS,网络byfn是试着加下, 希望有帮助。

# Copyright IBM Corp. All Rights Reserved.    
#     
# SPDX-License-Identifier: Apache-2.0    
#     
version: '2'    
networks:    
byfn:    
volumes:    
orderer.example.com:    
services:    
orderer1.example.com:    
container_name: orderer1.example.com    
image: hyperledger/fabric-orderer:1.4.0    
environment:    
- FABRIC_LOGGING_SPEC=INFO    
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0    
- ORDERER_GENERAL_GENESISMETHOD=file    
- ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block    
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP    
- ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp    
# enabled TLS    
- ORDERER_GENERAL_TLS_ENABLED=true    
- ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key    
- ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt    
- ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]    
- ORDERER_KAFKA_TOPIC_REPLICATIONFACTOR=1    
- ORDERER_KAFKA_RETRY_LONGINTERVAL=10s     
- ORDERER_KAFKA_RETRY_LONGTOTAL=100s    
- ORDERER_KAFKA_RETRY_SHORTINTERVAL=1s    
- ORDERER_KAFKA_RETRY_SHORTTOTAL=30s    
- ORDERER_KAFKA_VERBOSE=true    
working_dir: /opt/gopath/src/github.com/hyperledger/fabric    
command: orderer    
volumes:    
- ./channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block    
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp:/var/hyperledger/orderer/msp    
- ./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/:/var/hyperledger/orderer/tls    
- orderer.example.com:/var/hyperledger/production/orderer    
ports:    
- 7050:7050    
extra_hosts:    
- "kafka1:192.168.31.86"    
- "kafka2:192.168.31.168"    
- "kafka3:192.168.31.121"    
- "kafka4:192.168.31.231"    
networks:    
- byfn#



peer.yaml, 重要点的配置是CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE, CORE_PEER_CHAINCODELISTENADDRESS, extra_hosts, networks

#    
# SPDX-License-Identifier: Apache-2.0    
#    
version: '2'    
networks:    
byfn:    
volumes:    
peer0.org1.example.com:    
peer1.org1.example.com:    
peer0.org2.example.com:    
peer1.org2.example.com:    
services:    
peer0.org1.example.com:    
container_name: peer0.org1.example.com    
#hostname: peer0.org1.example.com    
image: hyperledger/fabric-peer:1.4.0    
environment:    
- CORE_PEER_ID=peer0.org1.example.com    
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051    
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051    
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051    
#- CORE_PEER_CHAINCODELISTENADDRESS=peer0.org1.example.com:7052    
- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052    
- CORE_PEER_LOCALMSPID=Org1MSP    
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock    
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_byfn    
# the following setting starts chaincode containers on the same    
# bridge network as the peers    
# https://docs.docker.com/compose/networking/    
- CORE_LOGGING_LEVEL=INFO    
- CORE_PEER_GOSSIP_USELEADERELECTION=true    
- CORE_PEER_GOSSIP_ORGLEADER=false    
- CORE_PEER_PROFILE_ENABLED=true    
- CORE_PEER_TLS_ENABLED=true    
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt    
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key    
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt    
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer    
command: peer node start    
volumes:    
- /var/run/:/host/var/run/    
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp    
- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls    
- peer0.org1.example.com:/var/hyperledger/production    
ports:    
- 7051:7051    
- 7052:7052    
- 7053:7053    
extra_hosts:    
- "orderer1.example.com:192.168.31.86"    
- "orderer2.example.com:192.168.31.168"    
- "orderer3.example.com:192.168.31.121"    
- "peer0.org1.example.com:192.168.31.86"    
- "peer1.org1.example.com:192.168.31.168"    
- "peer0.org2.example.com:192.168.31.121"     
- "peer1.org2.example.com:192.168.31.231"    
networks:    
- byfn    
cli:    
container_name: cli    
image: hyperledger/fabric-tools:1.4.0    
tty: true    
stdin_open: true    
environment:    
- GOPATH=/opt/gopath    
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock    
- CORE_LOGGING_LEVEL=INFO    
- CORE_PEER_ID=cli    
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051    
- CORE_PEER_LOCALMSPID=Org1MSP    
- CORE_PEER_TLS_ENABLED=true    
- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt    
- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key    
- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt    
- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp    
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer    
volumes:    
- /var/run/:/host/var/run/    
- ./chaincode/:/opt/gopath/src/github.com/chaincode    
- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/    
- ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/    
- ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts    
extra_hosts:    
- "orderer1.example.com:192.168.31.86"    
- "orderer2.example.com:192.168.31.168"    
- "orderer3.example.com:192.168.31.121"    
- "peer0.org1.example.com:192.168.31.86"    
- "peer1.org1.example.com:192.168.31.168"    
- "peer0.org2.example.com:192.168.31.121"     
- "peer1.org2.example.com:192.168.31.231"    
networks:    
- byfn


 

感谢关注。

拜读了https://www.javatree.cn/news/49d1ee9c76564300a67586d94be5b439文章

关于我遇到的问题,我昨天可能没有说明白全部问题。orderer拆分到另一host后,位于原先host上的peer,ca和cli,在cli上执行peer chaincode query和peer chaincode invoke是完全正常的,只是这个host上的nodejs client执行invoke.js就不正常了,query.js还是正常的。

我猜测问题可能出在nodejs client使用的环境设置,和cli容器中的不一样,到底是什么不一样断断续续查了一个礼拜也没弄出来。

就是说和orderer以及peer,cli的docker-compose配置关系不大,因为若有问题cli容器中执行peer chaincode invoke命令会失败。

执行node invoke.js时orderer上没有任何debug和其他日志产生,因为根本没连上。


拆分orderer后在peer所在host上相关执行命令和node日志是:
zchain@peer0:~/git/basic-network-fabcar/fabcar/javascript$ node enrollAdmin.js
Wallet path: /home/zchain/git/basic-network-fabcar/fabcar/javascript/wallet
Successfully enrolled admin user "admin" and imported it into the wallet

zchain@peer0:~/git/basic-network-fabcar/fabbar/javascript$ node registerUser.js
Wallet path: /home/zchain/git/basic-network-fabcar/fabcar/javascript/wallet
Successfully registered and enrolled admin user "user1" and imported it into the wallet

zchain@peer0:~/git/basic-network-fabcar/fabcar/javascript$ node query.js
Wallet path: /home/zchain/git/basic-network-fabcar/fabcar/javascript/wallet
Transaction has been evaluated, result is: [{"Key":"CAR0", "Record":{"colour":"blue","make":"Toyota","model":"Prius","owner":"Tomoko"}},{"Key":"CAR1", "Record":{"colour":"red","make":"Ford","model":"Mustang","owner":"Brad"}},{"Key":"CAR2", "Record":{"colour":"green","make":"Hyundai","model":"Tucson","owner":"Jin Soo"}},{"Key":"CAR3", "Record":{"colour":"yellow","make":"Volkswagen","model":"Passat","owner":"Max"}},{"Key":"CAR4", "Record":{"colour":"black","make":"Tesla","model":"S","owner":"Adriana"}},{"Key":"CAR5", "Record":{"colour":"purple","make":"Peugeot","model":"205","owner":"Michel"}},{"Key":"CAR6", "Record":{"colour":"white","make":"Chery","model":"S22L","owner":"Aarav"}},{"Key":"CAR7", "Record":{"colour":"violet","make":"Fiat","model":"Punto","owner":"Pari"}},{"Key":"CAR8", "Record":{"colour":"indigo","make":"Tata","model":"Nano","owner":"Valeria"}},{"Key":"CAR9", "Record":{"colour":"brown","make":"Holden","model":"Barina","owner":"Shotaro"}}]

zchain@peer0:~/git/basic-network-fabcar/fabcar/javascript$ node invoke.js
Wallet path: /home/zchain/git/basic-network-fabcar/fabcar/javascript/wallet
2019-03-27T08:07:51.521Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpc://192.168.122.6:7050
2019-03-27T08:07:51.523Z - error: [Orderer.js]: Orderer grpc://192.168.122.6:7050 has an error Error: Failed to connect before the deadline URL:grpc://192.168.122.6:7050
Failed to submit transaction: Error: Failed to connect before the deadline URL:grpc://192.168.122.6:7050

拆分orderer所做的动作有。

修改basic-network/connectin.json,将其中的orderer,peer和ca的grpc地址改成实际的:

    "orderers": {
        "orderer.example.com": {
            "url": "grpc://192.168.122.6:7050"
        }
    },
    "peers": {
        "peer0.org1.example.com": {
            "url": "grpc://127.0.0.1:7051"
        }
    },
    "certificateAuthorities": {
        "ca.example.com": {
            "url": "http://127.0.0.1:7054",
            "caName": "ca.example.com"
        }
    }

修改peer上的docker-compose.yml,屏蔽对orderer的依赖,增加extra_hosts,

orderer service的内容是:

    extra_hosts:
      - "orderer.example.com:127.0.0.1"
      - "peer0.org1.example.com:192.168.122.228"

peer service的内容是:

    extra_hosts:
      - "orderer.example.com:192.168.122.6"
      - "peer0.org1.example.com:127.0.0.1"

cli service的内容是:

   extra_hosts:
      - "orderer.example.com:192.168.122.6"
      - "peer0.org1.example.com:192.168.122.228"

orderer host上的启动脚本start.sh仅启动orderer,不创建channel和链码:

docker-compose -f docker-compose.yml up -d  orderer.example.com

peer host 上的启动脚本去掉启动orderer的部分:

docker-compose -f docker-compose.yml up -d ca.example.com peer0.org1.example.com couchdb


我对basic-network默认的docker-compose.yml增加了一些内容,否则拆分orderer后,初始化链码不成功。完整的docker-compose.yml内容如下:

#
# Copyright IBM Corp All Rights Reserved
#
# SPDX-License-Identifier: Apache-2.0
#
version: '2'

networks:
  basic:

services:
  ca.example.com:
    image: hyperledger/fabric-ca
    environment:
      - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
      - FABRIC_CA_SERVER_CA_NAME=ca.example.com
      - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
      - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk
    ports:
      - "7054:7054"
    command: sh -c 'fabric-ca-server start -b admin:adminpw'
    volumes:
      - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
    container_name: ca.example.com
    networks:
      - basic


  orderer.example.com:
    container_name: orderer.example.com
    image: hyperledger/fabric-orderer
    environment:
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=net_basic
      - ORDERER_GENERAL_LOGLEVEL=debug
      - FABRIC_LOGGING_SPEC=debug
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_LISTENPORT=7050
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/crypto/orderer/msp
      - ORDERER_GENERAL_TLS_ENABLED=false
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/etc/hyperledger/crypto/orderer/tls/server.key
      - ORDERER_GENERAL_TLS_CERTIFICATE=/etc/hyperledger/crypto/orderer/tls/server.crt
      - ORDERER_GENERAL_TLS_ROOTCAS=[/etc/hyperledger/crypto/orderer/tls/ca.crt,/etc/hyperledger/crypto/peer/tls/ca.crt]
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
    command: orderer
    ports:
      - 7050:7050
    volumes:
        - ./config/:/etc/hyperledger/configtx
        - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/:/etc/hyperledger/crypto/orderer
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/crypto/peer
    networks:
      - basic
    extra_hosts:
      - "orderer.example.com:127.0.0.1"
      - "peer0.org1.example.com:192.168.122.228"

  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    image: hyperledger/fabric-peer
    environment:
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984

      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_PEER_NETWORKID=basic
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_CHAINCODEADDRESS=peer0.org1.example.com:7052
      - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.zte.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP

      - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.zte.com:7051

      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      #  the following setting starts chaincode containers on the same
      #  bridge network as the peers
      #  https://docs.docker.com/compose/networking/
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=net_basic
      - FABRIC_LOGGING_SPEC=debug
      - CORE_CHAINCODE_LOGGING_LEVEL=debug
      - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/crypto/peer/msp
      # The CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME and CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD
      # provide the credentials for ledger to connect to CouchDB.  The username and password must
      # match the username and password set for the associated CouchDB.
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_PROFILE_ENABLED=false
      - CORE_PEER_TLS_ENABLED=false
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/crypto/peer/tls/server.key
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/crypto/peer/tls/server.crt
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/crypto/peer/tls/ca.crt


    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: peer node start
    # command: peer node start --peer-chaincodedev=true
    ports:
      - 7051:7051
      - 7052:7052
      - 7053:7053
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com:/etc/hyperledger/crypto/peer
        - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
        - ./config:/etc/hyperledger/configtx
    depends_on:
      #- orderer.example.com
      - couchdb
    networks:
      - basic
    extra_hosts:
      - "orderer.example.com:192.168.122.6"
      - "peer0.org1.example.com:127.0.0.1"

  couchdb:
    container_name: couchdb
    image: hyperledger/fabric-couchdb
    # Populate the COUCHDB_USER and COUCHDB_PASSWORD to set an admin user and password
    # for CouchDB.  This will prevent CouchDB from operating in an "Admin Party" mode.
    environment:
      - COUCHDB_USER=
      - COUCHDB_PASSWORD=
    ports:
      - 5984:5984
    networks:
      - basic
  cli:
    container_name: cli
    image: hyperledger/fabric-tools
    tty: true
    environment:
      - GOPATH=/opt/gopath
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - FABRIC_LOGGING_SPEC=debug
      - CORE_CHAINCODE_LOGGING_LEVEL=debug
      - CORE_PEER_ID=cli
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_TLS_ENABLED=false
      - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
      - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
      - CORE_CHAINCODE_KEEPALIVE=10
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: /bin/bash
    volumes:
        - /var/run/:/host/var/run/
        - ./../chaincode/:/opt/gopath/src/github.com/
        - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
        - ./config:/etc/hyperledger/configtx
    networks:
        - basic
    depends_on:
      #- orderer.example.com
      - peer0.org1.example.com
      - couchdb
    extra_hosts:
      - "orderer.example.com:192.168.122.6"
      - "peer0.org1.example.com:192.168.122.228"











 

明天我在我环境用你脚本跑下,发现这个跟例子不大一样不知有没影响。

CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.zte.com:7051

 - CORE_PEER_LOCALMSPID=Org1MSP

 - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.zte.com:7051


以前吃完饭我经常绕着ZTE大楼散步:)

 

我在自己的1.4测试了一下, 我用两台机器

192.168.31.86 安装ca,peer0和couchdb

192.168.31.168 安装orderer.


代码我已上传到https://github.com/zealzeng/fabric-samples/tree/master/dablyo-fabcar


共有一个dablyo-docker-compose.yml


  • 168机器安装orderer

dablyo-startFabric.sh启动,对应使用basic-network的dablyo-start.sh, dablyo-docker-compose.yml, docker ps查看只有orderer启动。


  • 86的机器ca,peer0和couchdb

dablyo-startFabric.sh启动,对应使用basic-network的dablyo-start.sh, dablyo-docker-compose.yml, docker ps查看只有ca,peer0,couchdb, cli中自动channel和链码安装且被调用.

修改basic-network/connection.json, 进入javascript目录npm install -unsafe-perm, 之后调用node enrollAdmin.js, node registerUser.js, node query.js, node invoke.js, 都成功。


最后拷贝生成wallet私钥等到168机器, scp -r wallet root@192.168.31.168:/mnt/sda3/fabric-samples/fabcar/javascript


  • 168机器执行链码

    修改basic-network/connection.json, 进入javascript目录, npm install等, 执行node query.js, node invoke.js即可.

TIM截图20190328194428.png

很遗憾 :( 。。。我执行成功了,即使里面存在不大正确的zte.xx.xx那些配置。。 看下是不是网络问题。防火墙什么,希望你能找到问题。。

 

嘿嘿,上面有些配置确实复制错了,囧啊。


上午我用fabric-samples/balance-transfer测试还是不通


唉,刚才看到你的消息,我用你的配置再试试



 

先前一直是用一台物理机上的不同的KVM虚机测试的

刚才把orderer迁移到一台物理机上

OK了

再查查到底是什么防火墙规则导致的问题


多谢关注

发表于:2019-03-26 19:40
赏金:¥0.1
状态: 已解决
  问题人
dablyo
问题:1 答题:0
心得:0 被赞:0
  答题人
Zealot
问题:2 答题:91
心得:35 被赞:0
支付宝扫码支付