搭建ngrok服务器之扩展

说明

了解本文之前,请先阅读前两篇博文。不然会感觉不知所云。本文主要是在前两篇基础上进行发散思维扩展及本博主遇到的一些问题。希望对其他人有帮助,让你少走弯路。

nginx端口转发

如果服务器80端口已经被占用了,可以利用nginx进行端口的转发,加上如下配置即可:

vim /usr/local/nginx/conf/vhost/ngrok.XXX.com.conf

内容如下:

upstream ngrok {
server 127.0.0.1:8888; # 此处端口要跟 启动服务端ngrok 时指定的端口一致
keepalive 64;
}
server {
listen 80;
server_name *.ngrok.XXX.com;
access_log /data/wwwlogs/ngrok.XXX.com_access.log;
error_log /data/wwwlogs/ngrok.XXX.com_error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host:8888;  # 此处端口要跟 启动服务端ngrok 时指定的端口一致
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://ngrok;
}
}

重启nginx

service nginx reload

关于ngrok服务端

/usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889"

# domain填写刚才生成证书时的 NGROK_DOMAIN

# http和https端口可以自己指定,这里不采用80端口,是因为其他程序已经占用了,端口转发在上面nginx已经配置完成

# 如果想要后台启动,执行以下命令(后台启动有多种方法,选择其一即可)

nohup /usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889" > /dev/null 2>&1 &

# 如果想要开机启动,在rc.local中添加以下内容,具体内容请根据自己情况自行调整

vim /etc/rc.d/rc.local

/usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889" > /var/log/ngrok.log &

关于ngrok客户端

你编译出来的客户端和服务端是配套使用的,你可以把你的客户端分享给别人使用,别人只能连接你的服务器,别的服务器是连接不上的。

确保linux版ngrok有执行权限

chmod +x ngrok

ngrok程序的同级目录下,编写配置文件

vim ngrok.cfg

内容如下:

server_addr: "ngrok.XXX.com:4443"
trust_host_root_certs: false
tunnels:
    test:
        subdomain: "test" #定义服务器分配域名前缀
        proto:
        http: 80 #映射端口,不加ip默认本机
        https: 80
    web:
        subdomain: "web" #定义服务器分配域名前缀
        proto:
        http: 192.168.1.100:80 #映射端口,可以通过加ip为内网任意一台映射
        https: 192.168.1.100:80
    web1:
        hostname: "ngrok.XXX.com"
        proto:
        http: 80
    web2:
        hostname: "XXX.com"
        proto:
        http: 80
    ssh:
        remote_port: 50001 #服务器分配tcp转发端口,如果不填写此项则由服务器分配
        proto:
        tcp: 22 #映射本地的22端口
    ssh1: #将由服务器分配端口
        proto:
        tcp: 21

启动ngrok

./ngrok -subdomain test -config=ngrok.cfg 80

# 或者

./ngrok -config ngrok.cfg start test

#如果在配置文件里有配置多个端口映射,可以start多个

./ngrok -config ngrok.cfg start test ssh

# 如果出现问题连接不上,想在本地查看日志,可加上log参数

# ./ngrok -log ngrok.log -config ngrok.cfg start test

# 最终如果`Tunnel Status`显示`online`则表示成功了

服务端防火墙

由于服务器上开启了防火墙,使用的是iptables,所以需要将上面的端口添加到白名单

一共3个,一个是ngrok自身的4443端口,还有自定义的8888 http端口,8889 https端口

vim /etc/sysconfig/iptables

添加以下内容

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4443 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8889 -j ACCEPT

重启iptables

service iptables restart

阿里云服务器设置

如果你的服务器是阿里公有云ECS,那么你需要进行如下设置:管理控制台--ESC实例--管理--本实例安全组--配置规则--创建规则。 把服务端监听的三个端口放行就可以了。

go语言环境安装

上篇中介绍了yum安装方法。此处是手动安装。根据自己的系统下载安装包,下载地址http://www.golangtc.com/download

下载完成后直接解压。

tar -zxvf go1.7.4.linux-amd64.tar.gz  -C /usr/local

设置环境变量,可以根据自己需要调整路径。

vim /etc/profile

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin

export GOPATH=$HOME/go

export GOROOT_BOOTSTRAP=/usr/local/go

使变量生效

source/etc/profile

查看是否安装成功

go env

ngrok的交叉编译

交叉编译:就是在一个平台上生成另一个平台上的可执行代码。

网上有人说:服务器上要编译windows客户端版本时,需要进行如下设置:

cd /usr/local/go/src

GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 ./make.bash

我在别的服务器测试过后,不用这样也行,直接按上篇的方法直接编译即可。

我按上面进行设置。反而会报这样的错:

go ./make.bash: eval: line 135: syntax error near unexpected token `(

ERROR: Cannot find /root/go1.4/bin/go.

Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

报错原因:go新版本不是用C编写的,而1.4之前的是C编写的,所以需要先安装1.4的,才能编译1.6的,于是便先安装了1.4,再安装1.6。

时间: 2024-10-05 10:23:26

搭建ngrok服务器之扩展的相关文章

Centos 搭建ngrok服务

什么是Ngrok Ngrok是一款用go语言开发的开源软件,它是一个反向代理.通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道.Ngrok可捕获和分析所有通道上的流量,便于后期分析和重放. 下图简述了Ngrok的原理 应用场景 用于对处在内网环境中,无外网IP的计算机的远程连接. Ngrok可以做TCP端口转发,对于Linux可以将其映射到22端口进行SSH连接.Windows的远程桌面可以将其映射到3389端口来实现.同理,如果要做MySQL的远程连接,只需映射3306端口即可.

搭建backup服务器之rsyncdaemon服务模式

deamon方式就是先搭建一个服务器,这个服务器上面跑一个rsync服务,服务就称为deamon(deamon就是实时运行的程序),rsync监听端口是873,然后在客户端上面使用rsync命令,实现和服务器之间推拉动作.(推拉都是在客户端执行rsync命令) 1. 统一版本: [[email protected] ~]# uname -mx86_64[[email protected] ~]# uname -r2.6.32-642.el6.x86_64[[email protected] ~]

搭建VPN服务器之PPTP

前言了解一下隧道技术:隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是ISO 七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载.被封装的数据包在互联网上传递时所经过的逻辑路径被称为"隧道".目前VPN隧道协议有4种:点到点隧道协议PPTP.第二层隧道协议L2TP.网络层隧道协议IPSec以及SOCKS v5,我们这里只介绍点到点隧道协议PPTP.一.pptp原理PPTP使用一个TCP连接对隧道

计算机网络系列:搭建FTP服务器之第二篇:搭建FTP站点

看本篇博文的时候,默认读者已经度过上一篇博文:已经在服务器上边安装好了IIS服务. 接着上一篇的,我们继续说,既然已经安装好了IIS服务,我们就要开始搭建FTP站点了: 开始-->管理工具-->Internet 信息服务(IIS)管理器,会出现如下所示的界面: 在FTP站点,右键选择"新建-->FTP站点": 然后"下一步" (IP地址为这个虚拟机的IP地址,可以在dos界面通过:ipconfig/all 命令查询. 另外,还需要在虚拟机设置:虚拟

计算机网络系列:搭建FTP服务器之第一篇:安装IIS信息服务

学网络课,那天上机课学到了怎么制作一个FTP服务器,然后就跟着老师做了下,其实很简单,但有一些细节性的稍微麻烦一点,还有一些配置文件需要下载,这里一并都放上来了. 首先,你得准备一个win 2003 server或者win xp的系统,然后用虚拟机把系统跑起来,下边我给两个资源的地址供大家下载(本人用的是win2003server): win 2003 server系统:http://pan.baidu.com/s/1hqvdOLA,(我放在了百度网盘里边) IIS配置工具:http://dow

Ubuntu14下搭建各种服务器之AAA认证2

1.搭建Tacacs+服务器 TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议) 是在TACACS协议的基础上进行了功能增强的安全协议.该协议与RADIUS协议的功能类似,采用客户端/服务器模式实现NAS与TACACS+服务器之间的通信 (1)TACACS+的用途 TACACS+协议主要用于PPP和VPDN(Virtual Private Dial-up Network,虚拟私有拨号网络)接入用户及终端用

Ubuntu14下搭建各种服务器之AAA认证3

1.搭建LDAP服务器 LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP (1)什么是目录服务?目录服务就是按照树状存储信息的模式 目录服务的特点? 目录服务与关系型数据库不同? 目录服务的数据类型主要是字符型, 而不是关系数据库提供的整数.浮点数.日期.货币等类型,为了检索的需要添加了BIN(二进制数据).CIS(忽略大小写).CES(大小写敏感).TEL(电话型)等语法(Syntax) 同样也不提供象关系数

搭建VPN服务器之PPTP远程连接

1.查看系统是否支持PPP [[email protected] ~]# cat /dev/ppp cat: /dev/ppp: 没有那个设备或地址 如果出现以上提示则说明ppp是开启的,可以正常架设pptp服务,若出现Permission denied等其他提示,你需要先去VPS面板里看看有没有enable ppp的功能开关,如果没有则需要发个消息给你的提供商,让他们帮你开通,否则就不必要看下去了,100%无法成功配置PPTP. 2.设置内核转发 [[email protected] ~]# 

Linux双网卡搭建NAT服务器之网络应用

一:拓扑.网络结构介绍 Eth1 外网卡的IP 地址, GW和DNS 按照提供商提供配置.配置如下: IP:114.242.25.18 NETMASK:255.255.255.0 GW:114.242.25.1 DNS:202106.0.20 DNS:202106.46.151 Linux 主机的 eth0 指向内网, IP 地址为: 172.100.10.1/24 . Eth 0 IP:172.100.10.1 NETMASK:255.255.255.0 内部办公区 IP 地址段是 172.1