전 플랫폼에서 땅콩 껍질을 대체하여 자신의ngrok 서버를 만들다
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 서비스를 배치합시다.추천 아리운 서버: 주문시 구매
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.