自建Ngrok服务器实现内网穿透远程访问教程

版权申诉
0 下载量 112 浏览量 更新于2024-09-08 收藏 219KB PDF 举报
"Linux环境下使用Ngrok搭建内网穿透服务器,实现远程访问内网计算机的教程" 在当前的数字化时代,远程访问和管理内网中的计算机变得越来越重要,尤其是在没有公网IP或者受到网络限制的情况下。Ngrok作为一个强大的内网穿透工具,能够帮助我们创建安全的隧道,使得公网可以访问到内网中的服务。本教程将指导你如何在Linux系统上搭建自己的Ngrok服务器。 首先,确保你拥有一个域名,这个域名不需要进行备案。然后,你需要对这个域名进行DNS解析,设置两条记录:一条是将域名(例如:xxx.com)直接指向你的服务器IP地址(xxx.xx.xx.xx),另一条是将通配符星号(*.xxx.com)也指向同一IP。这样,任何子域名都可以通过这个IP地址访问。 Ngrok的核心原理是反向代理,它创建了一个从公共互联网到本地运行的Web服务的安全通道,同时还能捕获和分析通过隧道的所有网络流量,便于后续的检查和回放。 以下是详细的搭建步骤: 1. **安装必备软件** - 安装GNU编译器套件,用于编译源码:`yum install gcc -y` - 安装Git,用于下载Ngrok源码:`yum install git -y` - 安装Go语言环境,因为Ngrok是用Go编写的:`yum install mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386 -y` 2. **安装lrzsz和screen** - lrzsz用于文件上传和下载:`yum install lrzsz -y` - screen提供多窗口会话管理:`yum install screen -y` 3. **下载Ngrok源码** - 使用Git克隆Ngrok的官方仓库到指定目录,例如`/opt`:`git clone https://github.com/inconshreveable/ngrok.git` 4. **生成Ngrok证书** - 配置你的域名环境变量,例如:`export ngrok_domain="jmps.cloudlinks.cn"` - 进入ngrok目录,并生成根证书和设备证书: - `cd ngrok` - 用以下命令依次生成证书: ``` export NGROK_DOMAIN="jmps.cloudlinks.cn" 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 ``` 5. **拷贝证书并启动Ngrok服务器** - 将生成的证书移动到Ngrok源码目录下的相应位置,替换原有证书,确保路径正确。 - 编译Ngrok源码以生成可执行文件:`go build` - 使用可执行文件启动Ngrok服务器,指定配置文件和证书路径。 完成上述步骤后,你的Ngrok服务器就已经搭建好了。你可以通过公网域名加上Ngrok的端口号来访问内网中的服务。例如,如果你将远程桌面服务配置为8080端口,那么可以通过`http(s)://yourdomain.com:8080`来远程访问。 值得注意的是,为了保障安全,你应该定期更新你的证书,并且确保你的服务器有足够的安全措施,防止未授权的访问。此外,如果你需要长时间稳定的服务,建议使用高可用的服务器集群来部署Ngrok。 通过自行搭建Ngrok服务器,不仅可以避免使用第三方服务的费用,还可以更好地控制你的数据安全,同时享受到内网穿透带来的便利。这是一项对于IT管理员和技术爱好者非常实用的技能。