Skip to content

Instantly share code, notes, and snippets.

@davidneelin
Last active September 6, 2022 10:16
Show Gist options
  • Save davidneelin/41a662dbaa24f98a43becf489143b86f to your computer and use it in GitHub Desktop.
Save davidneelin/41a662dbaa24f98a43becf489143b86f to your computer and use it in GitHub Desktop.
a script that auto install ngrok in centos
#!/bin/bash
if [[ $# -lt 1 ]]; then
echo "usage: $0 domain"
exit 0
else
domain=$1
echo "domain is ${domain}"
fi
go version
if [[ $? -eq 0 ]]; then
yum install -y mercurial git
else
yum install -y golang mercurial git
fi
mkdir -p /data/software && cd /data/software
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok
export NGROK_DOMAIN=${domain}
openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
cp base.pem assets/client/tls/ngrokroot.crt
make release-server release-client
if [[ $? -eq 0 ]]; then
echo "install success! start it use: bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain=\"$NGROK_DOMAIN\" -httpAddr=\":10080\" -httpsAddr=\":10443\" -tunnelAddr=\":10086\""
else
echo 'build fail'
fi
# compile other platform client side
# GOOS=darwin GOARCH=amd64 make release-client
# GOOS=windows GOARCH=amd64 make release-client
# GOOS=windows GOARCH=386 make release-client
# GOOS=linux GOARCH=amd64 make release-client
# GOOS=linux GOARCH=386 make release-client
# start server side
# nohup bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="$NGROK_DOMAIN" -httpAddr=":10080" -httpsAddr=":10443" -tunnelAddr=":10086" > /var/log/ngrok.log 2>&1 &
# start client side
# ./ngrok -config=ngrok.cfg -subdomain=test 80
server {
listen 80;
server_name *.abc.me n.abc.me;
location / {
proxy_pass http://127.0.0.1:10080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment