之前直接使用centos7搭建了ngrok,可以順利穿透內網,但是聽先進說這樣會佔用了端口,所以採用docker+ngrok的方式更加的優
可能會用到的centos輔助命令
#查看80端口狀況
lsof -i tcp:80
#列出所有端口
netstat -ntlp
採用Docker + ngrok
前面的域名設置是一樣的,可以參考上一篇centos7 搭建自己的ngrok服務
由於之前的go版本問題,導致做出來的客戶端無法在linux運行(mac和windows都沒有問題),此時需要做如下修改後,再啟動容器
git clone https://github.com/hteen/docker-ngrok.git
cd docker-ngrok
sed -i '1cFROM golang:1.8.3' Dockerfile
sed -i '4cRUN apt-get install git make openssl' Dockerfile
docker build -t hteen/ngrok .
創建docker ngrok容器
docker run -idt \
--restart always \
--name ngrok-server \
-p 8880:80 \
-p 8443:443 \
-p 4443:4443 \
-v /data/ngrok:/myfiles \
-e DOMAIN='nb.coodata.cn' \
hteen/ngrok /bin/sh /server.sh
備註:記得把nb.coodata.cn改為自己的域名
第一次創建的時候直接可以運行,第二次則出現問題(exit status 1)通過以下代碼解決
pkill docker #终止进程
iptables -t nat -F #清空nat表的所有链
ifconfig docker0 down #停止docker默认网桥
systemctl restart docker #重启docker
添加反向代理
主要是因為80,443端口通常佔用了
搭建nginx反向代理服务器
通过docker-compose搭建
vi proxy-nginx.yml
nginx:
image: nginx:latest
container_name: proxy-nginx
restart: always
ports:
- 80:80
volumes:
- ~/nginx/www:/usr/share/nginx/html
- ~/nginx/conf.d:/etc/nginx/conf.d
docker-compose -f proxy-nginx.yml up -d
创建默认配置
vi ~/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
修改配置
vi ~/nginx/conf.d/ngrok-proxy.conf
server {
listen 80;
server_name nb.coodata.cn *.nb.coodata.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://193.112.101.53:8880; #代理的ip+端口
}
}
server {
listen 443;
server_name nb.coodata.cn *.nb.coodata.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://193.112.101.53:8443; #代理的ip+端口
}
}
下載客戶端
和之前的方法一樣,mac的是用/data/ngrok/bin/darwin_amd64/ngrok這個
添加可執行權限,並創建cfg文件
chmod +x ngrok
文獻1:Docker+Ngrok+Nginx实现内网穿透
文獻2:Docker 部署Nginx反向代理服务器
文献3:查看nginx反向代理服务器如何搭建