전 플랫폼에서 땅콩 껍질을 대체하여 자신의ngrok 서버를 만들다

4695 단어

ngrok 구축에 필요한 서버 추천


아리운 고성능 서버 2 접기: 주문시 구매


ngrok가 무엇인지 간단하게 말하자면 땅콩 껍질과 유사하다. 그 기능은 로컬 서비스를 외부 네트워크에 노출시키고 공공 네트워크를 통해 접근할 수 있도록 하는 것이다.예를 들어 네가 직접 사이트를 써서 친구들과 자랑하고 싶다.또 예를 들어 게임을 만들어 친구들과 함께 하고 싶다.프로그램 원숭이에 대해 말하자면, 위챗 개발 시 로컬 디버깅을 할 수 없는 등은ngrok를 통해 실현될 수 있다.
준비해야 할 1, 공중 인터넷의 linux 서버, 은이 부족한 것은 인터넷에서 찾을 수 있는 무료 (나의 것은 ubuntu 서버) 2, 도메인 이름 (현재 도메인 이름이 매우 싸다. 만약에 나중에 값이 된다면) 3, 중국어를 알고 아래의 문자를 볼 수 있다
컴파일 준비 1, 도메인 이름 범용 해석 서버 2, 진입http://www.golangtc.com/download서버의 버전에 대응하는 go를 다운로드하세요.여기 다운로드한 것은:go1.4.2.linux-amd64.tar.gz.그리고 go 설치 패키지를 서버에 직접 압축 해제합니다.
/usr/local/go

하면, 만약, 만약...
/usr/local/go/bin/*

복사
/usr/bin

3. git 및ngrok 원본 코드를 설치:git 설치
sudo apt-get install git

설치ngrok:
cd /usr/local/src/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/src/ngrok/
export NGROK_DOMAIN="ngrok.lovehxy.com"
cd ngrok

위에 있는ngrok.lovehxy.com은 바로 당신의 2급 도메인 이름입니다. 마음대로 하세요.
컴파일 시작 1, 루트 도메인 이름에 대한 인증서 생성
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.lovehxy.com" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.lovehxy.com" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt 
cp device.key assets/server/tls/snakeoil.key

2. 컴파일 서버에서 환경 변수를 지정합니다.
GOOS=linux GOARCH=amd64
# 32 ,  GOARCH=386

다시:
make release-server

만약make 과정에서 멈추면git버전을 1.7.9.5 이상으로 업그레이드하여 컴파일한 후
/usr/local/src/ngrok/bin

다음에ngrokd 실행 가능한 파일이 생성되었습니다. 이것이 바로 우리가 컴파일한 서버입니다. 시작:
bin/ngrokd -domain="ngrok.lovehxy.com" -httpAddr=":8000"

다른 문제가 없으면 다음 출력이 나타납니다.
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:8000
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:443
[11:05:48 CST 2015/11/16] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443

먼저crtl+c를 종료하고 다음은 컴파일 클라이언트입니다.
주: 상술한 번역 과정은github, 구글 코드에 가서 나머지 프로젝트에 의존하는 원본 코드를 다운로드해야 하기 때문에 VPN을 끊어야 합니다.물론 서버가 vpn을 끊지 못하면 로컬에서 설명한 조작 과정을 진행한 다음 컴파일된 원본 코드를 서버에 복사하여 다시 컴파일하면 됩니다.그리고 가장 간단한 해결 방법은 원본 코드를 수정하여 구글 코드를 연결해야 하는 주소를github에 연결된 주소로 바꾸는 것이다.
/root/ngrok/src/ngrok/log/logger를 찾습니다.go, 안에 import에서 구글 코드를 인용한 것을 보고 "github.com/keepeye/log4go"로 변경했습니다.
3. 클라이언트 직접 컴파일:
make release-client

컴파일된 것은 linux 플랫폼 아래의 클라이언트입니다. 만약 당신이 linux 클라이언트라면 직접 사용할 수 있습니다.
mac의 클라이언트 컴파일:
cd /usr/local/go/src
GOOS=darwin GOARCH=amd64 ./make.bash

그리고 ngrok 디렉터리로 돌아가서 계속 컴파일합니다.
cd -
GOOS=darwin GOARCH=amd64 make release-client

완성 후
/usr/local/src/ngrok/bin/darwin_amd64/

다음에ngrok를 발견하면 맥 컴퓨터에 복사합니다. 시작하기 전에 클라이언트를 위한 프로필ngrok를 작성해야 합니다.cfg:
server_addr: "ngrok.lovehxy.com:4443"
trust_host_root_certs: false

다음 작업을 실행합니다.
./ngrok -config=./ngrok.cfg -subdomain=test 80

그중에 - subdomain은 도메인 이름을 분배해야 하는 접두사 부분입니다.
오류가 없으면 다음과 같은 출력이 표시됩니다.
Tunnel Status                 online
Version                       1.7/1.7
Forwarding                    http://test.ngrok.lovehxy.com:8000 -> 127.0.0.1:80
Forwarding                    https://test.ngrok.lovehxy.com:8000 -> 127.0.0.1:80
Web Interface                 127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms

현재 방문:test.ngrok.lovehxy.com: 8000이면 당신의 80 포트에 접근할 수 있습니다
윈도우즈의 클라이언트 컴파일:
cd /usr/local/go/src
GOOS=windows GOARCH=amd64 ./make.bash
cd -
GOOS=windows GOARCH=amd64 make release-client
# , amd64 64 ,32 386
#  bin/windows_amd64  ngrok 

다음을 수행합니다.
ngrok -config=ngrok.cfg -subdomain test 8080 

... 하면 된다
어때요, 쿨하지 않아요?유능한 파트너는 서둘러 클라우드 서버를 구매하여 자신의ngork 서비스를 배치합시다.추천 아리운 서버: 주문시 구매

좋은 웹페이지 즐겨찾기