与云服务器相比,本地服务器可操控性以及可拓展性更强,硬盘容量也可以随意增加,性价比比较高,很适合访问数量不是特别巨大的用户。
而本地搭建web服务器,除了要准备一台旧电脑以外,还要考虑如何实现公网访问这一难题。
如果你有公网IP,那问题迎刃而解;如果你没有公网IP,可以试着电话运营商申请公网IP,但并不是所有地区都可以申请到。一般这时候,选择第三方公网服务器反向代理是不错的方案。
我用的是cpolar内网穿透
,支持http/https/tcp协议,可以永久免费使用不限制流量,不需要自己搭建服务,安装客户端后直接创建隧道将内网端口映射到公网上,会生成相应的公网地址,实现公网访问内网。
1. 安装cpolar内网穿透
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. 创建隧道映射内网端口
cpolar安装成功后,在浏览器上访问127.0.0.1:9200,使用cpolar账号登录web UI管理界面。
登录成功后,进入主界面后。比如,我们需要将本地8080端口下的web站点发布到公网可访问,只需要点击左侧仪表盘的隧道管理
————创建隧道
,输入隧道信息,然后点击创建即可。
- 隧道名称:可自定义,注意不要重复
- 协议:选择
http
协议 - 本地地址:填写
8080
端口 - 域名类型:选择
随机域名
(可免费使用) - 地区:选择
China VIP
隧道创建成功后,可以在隧道管理
————隧道列表
查看隧道状态,如为active
激活。说明已经启动成功。
cpolar会默认安装两个样例隧道:
- 一个是Website隧道指向http 8080端口
- 一个是ssh隧道(Linux&macOS系统)/远程桌面隧道(win系统),指向tcp 22端口/tcp 3389端口
3. 获取公网地址
点击左侧仪表盘的状态
————在线隧道列表
,找到我们刚刚创建的隧道,可以看到有生成相应的公网URL地址,有两行,其中一个是http隧道,一个是https隧道。
将公网地址复制到浏览器访问即可,实现公网远程访问内网。
显示如下图灰色的画面,这说明,cpolar已经配置正确,隧道创建成功。只是本地8080端口上,并未发现可用的web站点(因为还没有配置本地Web Server。所以才会显示灰色不可用的画面。如果你本地有正常配置页面,那么就会正常显示出来。)