外网访问内网80端口【内网穿透】
微信公众号开发、本地搭建web服务器,或者在本地服务器搭建了IIS或apache等web网站时,需要解决80端口映射的问题。
但很多人在路由器映射80端口的时候,会出现映射失败的情况。造成这种情况的原因有很多种,比较常见的是被运营商屏蔽了,使用需要找运营商备案才可以。也有可能不是真实的公网IP,一样会出现映射失败的情况。
针对这种情况,不论是有公网IP还是没有公网IP,都可以使用内网穿透工具绕过运营商的端口封锁,通过公网服务器进行流量转发,实现外网访问内网80端口。
我一直在用的是cpolar内网穿透
,支持http/https/tcp协议,可以永久免费使用不限制流量
,不需要公网IP,也不用设置路由器,操作比较简单,安装配置客户端后,创建隧道映射内网端口即可,会生成相应的公网地址,实现公网访问内网。
1. 本地安装内网穿透工具
cpolar内网穿透官网:https://www.cpolar.com/
需要先注册一个cpolar账号,后面会用到
1.1 Windows
windows系统可以在cpolar官网下载最新的安装包,然后解压默认安装即可。
1.2 Linux
linux系统支持一键自动安装脚本
1.2.1 安装
- 国内使用
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 国外使用
curl -sL https://git.io/cpolar | sudo bash
1.2.2 认证token
登录cpolar官网后台————验证,查看自己的认证token,之后将token贴在命令行里
cpolar authtoken xxxxxxx
1.2.3 向系统添加服务
sudo systemctl enable cpolar
1.2.4 启动服务
sudo systemctl start cpolar
1.2.5 查看服务状态
sudo systemctl status cpolar
如正常显示active
,则说明已经启动成功。
1.3 macOS
在官网下载下载适用于macOS平台的zip压缩包,解压后得到cpolar,然后通过命令行带参数运行即可。
1.3.1 通过Homebrew包管理器安装
brew tap probezy/core && brew install cpolar
1.3.2 token认证
登录cpolar官网后台————验证,查看自己的认证token,之后将token贴在命令行里
cpolar authtoken xxxxxxx
1.3.2 安装服务
sudo cpolar service install
1.3.2 启动服务
sudo cpolar service start
2. 创建隧道映射内网80端口
cpolar安装成功后,在浏览器上访问127.0.0.1:9200,使用cpolar账号登录web UI管理界面。
登录成功后,进入主界面,点击左侧仪表盘的隧道管理
————创建隧道
,输入隧道信息,然后点击创建即可。
- 隧道名称:可自定义,注意不要重复
- 协议:选择
http
协议 - 本地地址:填写
80
端口 - 域名类型:选择
随机域名
(可免费使用) - 地区:选择
China VIP
隧道创建成功后,可以在隧道管理
————隧道列表
查看隧道状态,如为active
激活。说明已经启动成功。
cpolar会默认安装两个样例隧道(可以进行修改或删减):
- 一个是Website隧道指向http 8080端口
- 一个是ssh隧道(Linux&macOS系统)/远程桌面隧道(win系统),指向tcp 22端口/tcp 3389端口
创建隧道映射内网端口,也可以通过执行命令来实现
cpolar http 80
3. 获取公网地址
点击左侧仪表盘的状态
————在线隧道列表
,找到我们刚刚创建的隧道,可以看到有生成相应的公网URL地址,有两行,其中一个是http隧道,一个是https隧道。
将公网地址复制到浏览器访问即可,实现公网远程访问内网。
显示如下图灰色的画面,这说明,cpolar已经配置正确,隧道创建成功。只是本地8080端口上,并未发现可用的web站点(因为还没有配置本地Web Server。所以才会显示灰色不可用的画面。如果你本地有正常配置页面,那么就会正常显示出来。)