内网穿透

Ngrok 内网穿透部署指南

自建内网穿透隧道,安全高效实现公网访问

Ngrok 内网穿透部署方案

📦 项目地址

代码仓库: git@github.com:blowizer/ngrok.git

git clone git@github.com:blowizer/ngrok.git
cd ngrok

🎯 场景使用

实现 ngrok 公网转发访问,用于内网穿透,将本地服务暴露到公网。

🖥️ 服务器环境准备

1. Ubuntu 系统依赖安装

apt-get -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ git

2. Go 语言环境安装

推荐版本: go version go1.16.3 linux/amd64

# 删除旧版本 golang 依赖包(如果存在)
rpm -qa|grep golang|xargs rpm -e

# 下载安装包
wget https://golang.org/dl/go1.16.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.16.3.linux-amd64.tar.gz

# 配置环境变量
vim /etc/profile
# 在文件末尾添加以下内容:
# #go lang
# export GOROOT=/usr/local/go
# export PATH=$PATH:$GOROOT/bin

# 使配置生效
source /etc/profile

# 检测是否安装成功
go version

3. 防火墙端口配置

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 8080 -j ACCEPT
# -A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT
# -A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

# 重新加载防火墙规则
/etc/init.d/iptables reload
/etc/init.d/iptables restart

# 查看开放的端口
iptables -nL

注意: 如果使用云服务器(如阿里云),还需要在安全组中开放相应端口。