Windows搭建ngrok服务器
1. 云服务器的公网ip可以映射到本地电脑吗
云服务器公网IP映射至本地电脑,通过Ngrok实现内网穿透,任意端口映射,解决端口映射难题。
面对IPv4协议,IPv6商用遥遥无期,内网穿透需求日益凸显。运营商分配的内网IP,限制了端口映射的可能。在寻求替代方案时,Ngrok的自建服务器功能脱颖而出,无需受制于人。
要实现内网穿透,可按照以下步骤操作:
1. 创建ngrok目录,编译程序。
2. 更新包管理器、安装git。
3. 克隆ngrok源代码至本地。
4. 安装Go语言环境。
5. 设置环境变量。
6. 生成根证书和服务器证书。
7. 将证书复制至ngrok目录。
8. 生成客户端与服务端。
9. 在工作目录的bin文件夹内,生成ngrok.exe和ngrokd.exe。
10. 使用注册表编辑器添加注册表项。
11. 启动自定义服务。
12. 关闭系统自带防火墙,设置硬件防火墙端口映射。
13. 将ngrok.exe复制至c:\windows\system32目录,并创建ngrok.cfg配置文件。
14. 编写配置文件,声明域名、通道与端口。
15. 创建执行BATCH文件,设置开机自动运行ngrok -config "ngrok.cfg" start服务名称。
16. 远程桌面测试成功。
通过以上步骤,即可实现在云服务器公网IP与本地电脑之间建立内网穿透连接,实现任意端口映射,解决端口映射难题。
2. 用Ngrok实现内网穿透
Ngrok简介:
Ngrok是用于内网穿透的开源软件,它的1.x版本存在内存泄漏问题,从2.x版本开始转向闭源。其工作原理是:服务器端运行于拥有公网IP的服务器上,监听http、https及tunnel端口,等待客户端连接。客户端在需要穿透的内网机器上运行,连接至服务器后,服务器开始监听客户端指定端口,外网用户连接服务器监听端口,服务器将用户数据转发至内网客户端,实现内网穿透。
准备工具:
1. 源码地址:github.com/inconshrevea...
2. 外网服务器:配备公网IP的服务器,需设置子域名(A、CNAME)。
3. 内网客户端:可以是虚拟机,本文以Ubuntu 20.04为例。
准备编译环境:
1. 安装go:使用命令`sudo apt install golang`。
2. 安装git:通过命令`sudo apt install git`实现。
3. 生成自签名证书:执行`cd ngrok`至项目目录,设置服务器域名`NGROK_DOMAIN="ngrok.abc.com"`。然后依次运行`openssl genrsa -out rootCA.key 2048`、`openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem`、`openssl genrsa -out device.key 2048`、`openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr`、`openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000`。
4. 将证书复制到指定文件夹:`cp rootCA.pem ../assets/client/tls/ngrokroot.crt`、`cp device.crt ../assets/server/tls/snakeoil.crt`、`cp device.key ../assets/server/tls/snakeoil.key`。
编译服务器和客户端:
1. 服务器编译:在linux系统中,使用命令`GOOS=linux GOARCH=386 make release-server`(32位)或`GOOS=linux GOARCH=amd64 make release-server`(64位),针对Mac OS和Windows系统,分别使用相应命令进行编译。
2. 客户端编译:根据系统类型,执行`GOOS=linux GOARCH=386 make release-client`(32位)或`GOOS=linux GOARCH=amd64 make release-client`(64位),同样包括Mac OS和Windows系统。
编译完成后,服务器和客户端程序将被生成在bin文件夹中。
运行服务器:
将`ngrokd`程序复制至服务器指定目录,若端口被占用可更改端口号,并确保开启防火墙并打开端口允许外网访问。具体操作参考相关文章。
开启服务器命令:`./ngrokd -domain="ngrok.abc.com" -httpAddr=":7080" -httpsAddr=":7010" -tunnelAddr=":7000"`。成功运行时会显示相应提示。
运行客户端:
将`ngrok`程序复制至客户端指定目录,创建`ngrok.yml`配置文件,配置如下内容:`./ngrok -config=ngrok.yml -log=ngrok.log start http ssh`。成功时将显示相关信息,即可通过设置的网址访问客户端。
补充:
1. 若服务端80端口被占用,可以使用Nginx进行转发,例如访问`test.ngrok.abc.com`即可转发至`ngrok.abc.com:7080`。
3. 在Win10系统下如何实现内网的穿透
内网穿透有何用处?
宽带为内网IP的用户即内网用户,以下范围内的IP地址属于内网保留地址,即不是公网IP,而是属于内网IP:
10.0.0.0 - 10.255.255.255;
100.64.0.0 - 100.127.255.255;
172.16.0.0 - 172.31.255.255;
192.168.0.0 - 192.168.255.255。
例如某小区用户均被分配的内网IP,通过一个公共的网关访问外网,小区内每家用户的计算机均可连接外网,但是Internet上的其他用户却无法对内网的计算机发送连接请求,自然也就无法访问内网计算机所搭建的网站,也无法为内网计算机提供仅公网IP才能支持的下载、传输服务,例如BT下载、电驴等。
内网穿透即NAT穿透,通过端口映射将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,让互联网上的用户可以通过此公网IP地址访问特定的内网主机所提供的网站或者服务器。
内网穿透教程:花生壳DDNS端口映射
1、花生壳客户端,没有护照的用户需要先注册花生壳护照。
2、在Windows10系统内安装花生壳,完成后登陆。
3、点击客户端内网映射,则跳转至花生壳管理的内网映射web页面,可以直接在网页中对域名进行添加映射,即使不在服务器现场,也可以远程管理。
下面介绍内网映射添加步骤:
1、点击【内网映射】——【添加映射】。
2、在添加映射页面,填写好“应用名称”,“内网服务器IP”,“内网服务端口”以及选择“外网端口”形式,点击确定即可。
3、添加成功后,会生成一个外网访问地址。
4、在浏览器地址栏输入外网访问地址,即可成功访问内网主机搭建的服务和应用。
5、搞定端口映射之后,内网用户也能同公网用户一样随心所欲使用强大的互联网服务了。除了搭建网站之外,完成内网穿透的用户还可以轻松实现远程桌面的搭建和访问、远程监控摄像头、自己开服玩游戏、搭建各类办公系统等等。