간단하게ngrok 서버를 구축하여 내부 네트워크 관통을 실현하다

2543 단어

왜ngrok 서버를 구축합니까


웹 개발을 할 때, 우리는 로컬 웹 사이트를 외부 인터넷 방문에 노출시켜야 한다. (예를 들어 내가 로컬 개발 위챗을 할 때)
ngrok는 역방향 에이전트 도구로 우리는 홈페이지의 클라이언트를 직접 다운로드하여 사용할 수 있지만 홈페이지 서버가 외국에 있기 때문에 비교적 느리고 무료 버전은 2급 도메인 이름을 연결하는 것을 지원하지 않는다.

뭐 공부 해요?

  • 공용 네트워크의 linux 서버(centos7, 한 번에 통과하는 것이 가장 좋다)
  • 독립 도메인 이름
  • docker에 익숙하면 제가 만든ngrok 서버의 거울을 실행해서 시작할 수 있습니다.https://github.com/jueying/docker-ngrok-server

    단계


    1.git,golang,openssl 설치
    yum install -y git golang openssl
    

    git 버전과 golang 버전은 너무 낡으면 안 됩니다. centos7은 기본적으로git1.8.3, go1.8.3을 설치합니다.
    2. clonengrok 항목을 로컬로 이동
    git clone https://github.com/inconshreveable/ngrok.git /usr/local/ngrok
    

    3. 인증서 생성
    #  
    export NGROK_DOMAIN="huahongbin.cn"
    
    # ngrok 
    cd /usr/local/ngrok
    
    #  
    openssl genrsa -out rootCA.key 2048
    openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
    openssl genrsa -out device.key 2048
    openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
    openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
    
    #  ngrok 
    cp rootCA.pem assets/client/tls/ngrokroot.crt
    cp device.crt assets/server/tls/snakeoil.crt
    cp device.key assets/server/tls/snakeoil.key
    

    4. 서로 다른 플랫폼의 서버와 클라이언트를 컴파일한다
    #  64 linux 
    GOOS=linux GOARCH=amd64 make release-server
    #  64 windows 
    GOOS=windows GOARCH=amd64 make release-server
    #  mac ,GOOS=darwin。 32 ,GOARCH=386
    

    실행 후ngrok/bin 디렉터리와 하위 디렉터리에서 서버ngrokd와 클라이언트ngrok.exe를 볼 수 있습니다.
    5. 서버 시작
    #  , http, https, tcp , 
    ./bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":8082" -tunnelAddr=":443"
    

    6. 클라이언트 시작
    장ngrok.exe 로컬 폴더로 복사 (winscp 가능), 폴더 새 프로필ngrok.cfg, 내용은 다음과 같습니다.
    server_addr: "huahongbin.cn:443"
    trust_host_root_certs: false
    

    도메인 이름은 자신의 독립 도메인 이름으로 바꾸고, 포트는ngrok 서버를 시작하는 터널 포트로 바꿉니다.
    그런 다음 cmd에서 다음 명령을 사용하여 시작합니다.
    ngrok.exe -subdomain=jueying -config=ngrok.cfg 80
    

    80 프록시를 위한 로컬 포트
    브라우저에서 지다http://127.0.0.1:4040구체적인 요청 정보를 볼 수 있다.

    FAQ

  • 컴파일할 때 다음 단계에서 카드 마스터go get gopkg.in/yaml.v1는 Git 버전이 너무 낮기 때문에 서버git 버전을 1.7.9.5 이상으로 업그레이드하십시오.
  • ngrok가 처음 번역할 때 외국 사이트에서 다운로드해야 하기 때문에 의존도가 있다.느릴 수도 있어. 심지어 타임아웃.몇 번 더 시도하든지, 아니면 네가 알든지.
  • 좋은 웹페이지 즐겨찾기