很多人都想试试自己建站玩一玩 (比如博客、自建网盘、远程下载等),但家里宽带没公网 IP,特意买台服务器又显得浪费。那么有没成本小、可玩性高、又能长期稳定使用的方案呢?

其实,免费的内网穿透工具 (如网云穿) + 树莓派,即可利用家里宽带来搭建运行各种好玩的网站程序,跑一些自用网络服务再适合不过了。树莓派价格便宜、功耗小、功能强大;而网云穿则能免费帮你实现内网穿透,让没有公网 IP 的树莓派也能在外网上直接访问……

由于电信联通等大多数普通宽带都不提供公网 IP 地址,别人无法通过互联网直接访问到你家中内网的电脑、树莓派、NAS 或其他网络设备。因此想在家里或公司“低成本”建站,我们需要借助「网云穿」这样的免费内网穿透工具,来快速地让内网设备能被外网公网访问。

网云穿可以申请到试用的“内网穿透隧道”,通过它就能让所有人直接从外网访问到你树莓派中建立的网站,也能实现远程 SSH 进行维护管理。这样,我们只需一个树莓派 或一台闲置 PC 电脑 / NAS (教程可参考这里),就能拥有一个完全属于自己的“高性价比的网站服务器”了。

建站前准备

树莓派 (Raspberry Pi) 是价格低廉的微型电脑,体积小巧,拥有不俗的性能,运行 Linux 系统,资源丰富且稳定,加上功耗极小,适合长期运行,特别适合用来做我们的“建站服务器”。

以树莓派 4 的配置,跑几个博客、PHP 程序或静态网站绝对是绰绰有余的。毕竟腾讯云、阿里云那些便宜的 VPS 也就1核1G,性能上并没强多少,但每年的价格并不算便宜。当然,如果你有闲置的 PC 或笔记本,安装个 Debian、CentOS、Ubuntu 等系统也完全可以。

而内网穿透工具的选择,选择「网云穿」,是因为速度比较稳定,既有免费的隧道可以零成本使用,也有付费方案适合有一定要求的高级用户;部署的方法也简单,是款不错的工具。再加上网云穿可以绑定域名,不需要备案,别人访问时,和真正的云服务器基本没有区别。

树莓派内网穿透+建站教程:

树莓派官方的「Raspberry Pi OS」系统是基于 Debian 修改而来的发行版,用法上和一台 Ubuntu、Debian 等 Linux 系统的机器没有什么区别,大家可参考 Linux 就该这么学、鸟哥的 Linux 私房菜等教程进行学习。

网上的“树莓派建站教程”有很多,随便一搜就能找到不少。不过,根据 WEB 程序的不同,所需要安装的组件也有区别 (比如有些是 PHP,有些 Python 或 Node.js 程序),大家要参考程序具体的部署说明。这里主要介绍最常见的 LNMP 环境安装 (Linux + Nginx + MySQL + PHP) 作为建站示范,可运行最常见的 WordPress,并且还会详细介绍怎样进行“内网穿透”的设置步骤。

安装 NGINX 和 PHP 7.3:

我们先通过 SSH 连接到局域网的树莓派,然后下面我们就开始以最常用的「安装 Nginx + PHP」作为网站 WEB 服务器软件作为例子吧。

#更新系统软件包
sudo apt-get update#安装 NGINX 和 PHP 7.3
sudo apt-get install nginx
sudo apt-get install php7.3-fpm php7.3-cli php7.3-curl php7.3-gd php7.3-cgi#启动 NGINX 和 PHP 服务
sudo service nginx start
sudo service php7.3-fpm restart

如果安装成功,在浏览器中通过 http://树莓派局域网IP 即可访问到 Nginx 的测试页面了,如下图。如显示正常,则表示 WEB 服务器已经正常提供服务了。默认情况下,Nginx 的网站根目录位于 /var/www/html。

让 Nginx 支持运行 PHP

#修改网站配置文件,新手可能需要学习一下 VIM 命令的使用方法
sudo vim /etc/nginx/sites-available/default

原来的配置文件内容:

location / {# First attempt to serve request as file, then# as directory, then fall back to displaying a 404.try_files $uri $uri/ =404;
}

替换为:

location / {index  index.html index.htm index.php;
}location ~\.php$ {fastcgi_pass unix:/run/php/php7.3-fpm.sock;#fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;
}

重启 NGINX 服务让 PHP 生效:

#重启 NGINX 服务
sudo service nginx restart

安装 MYSQL (MariaDB) 数据库

MariaDB 是 MYSQL 被甲骨文收购后的开源复刻版,完全免费,且使用上基本一致,基本可以兼容全部的 MYSQL 程序。

# 安装软件包
sudo apt-get install mariadb-server-10.0

修改 MYSQL 数据库的密码:

# 执行 mysql 程序
mysql

顺序输入下面的 mysql 命令来修改数据库 root 用户的密码:

use mysql;
update user set plugin='mysql_native_password' where user='root';
UPDATE user SET password=PASSWORD('你想要设定的密码') WHERE user='root';
flush privileges;
exit;
# 重启 MYSQL 服务
service mysql restart

至此,LNMP 环境 (Nginx + MariaDB + PHP) 已经安装完成了!有了 LNMP 环境,你就可以上传比如 WordPress 或各种各样的 PHP 网站程序到树莓派中完成建站了。

配置树莓派的内网穿透教程

假如你已架设好了网站,那么接下来就是“配置内网穿透教程”让你的树莓派能被外网访问。

1、领取免费的内网穿透隧道,并配置隧道

前往「官网」注册账号 → 领取试用隧道,然后跳转控制台点击隧道管理、配置隧道信息;穿透协议设置为 Http(s)。内网端口就是你安装的 nginx 的端口号,默认是 80,此端口号在配置文件上进行修改。

2、获取隧道的“令牌”

确定之后,控制台会生成一个「令牌」,相当于内网穿透时的通讯密码,后面需要用到,你可以复制下来暂时保存。

3、安装网云穿客户端

网云穿可以安装在 Windows、Linux、Mac 甚至是群晖 NAS 上,同样,在树莓派上也能直接安装。树莓派使用的是 ARM 架构处理器,所以下载 Linux ARM 版本即可。如果你用的是 PC 电脑,那么就该更换成对应架构的 x64 版客户端。

在树莓派上执行:

# 使用 wget 命令下载网云穿客户端
wget -O /home/pi/ http://xiaomy.net/download/linux/wyc_linux_arm
# 设置可执行权限
sudo chmod a+rwx /home/pi/wyc_linux_arm# 启动网云穿客户端
# 其中 XXXX 是你刚才获取到的“令牌”
/home/pi/wyc_linux_arm -token XXXX

如果令牌没有错的话,网云穿客户端就会进行登录和连接,成功后输出以下的信息:

这时你就能获取到公网访问的网址了,你在浏览器访问这个网址,即可直接打开树莓派里的 Nginx 配置的默认网站。

4、树莓派设置网云穿客户端开机启动

如果你需要树莓派重启之后能再次自动启动“网云穿”的内网穿透功能,那么还得配置程序自启动。我们首先向 rc.local 文件添加启动代码:

# 编辑 rc.local 文件
sudo vim /etc/rc.local

在 rc.local 文件中找到“exit 0”这一句,在它前面添加以下的命令代码:

nohup /home/pi/wyc_linux_arm -token=你的令牌 &
# 这一句必须在 exit 0 的前面,注意别漏掉“令牌”后面的空格和 & 符号

这样配置之后,每当在树莓派重启之后,你的内网穿透功能都会自动启动的。而且在树莓派上部署的网站都能被外网直接访问得到了。

配置内网穿透,实现 SSH 远程连接树莓派

除了网站可以访问之外,如果日后你还需要在外网通过 SSH 来远程管理树莓派 (比如升级更新、安装程序、执行 Linux 命令、维护网站等等),那么还可以为 SSH 增加一个内网穿透隧道。

同样,还是先开通一个隧道,操作方法和之前一样,不过这次配置穿透协议要改成 tcp,内网端口为树莓派的 sshd 的端口,默认是 22,端口号可通过配置文件修改,保持一致就行。

确定之后,会生成如图的信息,记录下外网端口、域名和令牌:

如同之前一样,在树莓派上使用这句命令来启动网云穿客户端。使用刚刚记录的口令,这次会生成一个带有端口的外网地址。

/home/pi/wyc_linux_arm -token 你的SSH隧道令牌

从上面命令的输出信息可以看到网云穿客户端是否成功连接。没有问题的话,那么就修改 rc.local 文件,如下,就能实现开机启动两个隧道了。

# 启动多个网云穿客户端实例,一行一个令牌
# 网站穿透:
nohup /home/pi/wyc_linux_arm -token=你的网站隧道令牌 &# ssh 穿透:
nohup /home/pi/wyc_linux_arm -token=你的SSH隧道令牌 &
# 注意必须在 exit 0 的前面

之后,在互联网的其他电脑上,使用 Putty 或任何终端应用,通过下面的命令即可连接到你内网的树莓派了:

ssh -p 外网端口 pi@域名

这样,通过网云穿开通的两条隧道,既实现了外网访问网站,也实现了树莓派的 SSH 远程管理。换而言之,现在你在任何地方上网,都能轻松直接访问到家里的树莓派了。

总结:

无论你是打算随便建个网站玩一玩,还是用于学习 Linux,或者是搭建真正有用的私人网络服务,借助树莓派/闲置电脑 + 网云穿内网穿透工具的免费隧道都能“低成本”完成!

利用内网穿透和家庭普通宽带搭建自己的服务器,可玩性和灵活性都极高,长期运行其实也很稳定,能解决很多场景的问题。至少建个 WordPress 博客或私人网盘对大多数人都是很有用的,感兴趣的同学不妨试试看。

简单免费内网穿透教程,利用树莓派实现低成本建站 无需公网相关推荐

  1. 简单内网穿透-利用树莓派-低成本建站 无需公网ip

    很多人都想试试自己建站玩一玩 (比如博客.自建网盘.远程下载等),但家里宽带没公网 IP,特意买台服务器又显得浪费.那么有没成本小.可玩性高.又能长期稳定使用的方案呢? 其实,免费的内网穿透工具 (如 ...

  2. 最简单的内网穿透教程

    内网穿透,可以有多种方式实现: 自己有公网IP,进入路由器做映射 自己有公网服务器搭建内网穿透 通过第三方公网服务器进行流量转发 比较常见是第三种方式,不需要自己搭建服务,也不用去申请公网IP.设置路 ...

  3. 黑群晖6.21无公网IP无域名内网穿透教程

    黑群晖6.21无公网IP无域名免费内网穿透教程 鼓捣黑群晖的起因,由于生了二胎,照片视频大量数据没有存储.闲来无事,准备解决大量照片存储问题.在咸鱼收了一块二手硬盘6T红盘. 但是问题来了,家里没有台 ...

  4. 推荐10款简单好用的免费内网穿透工具

    远程办公越来越普遍,但是如何应对在外远程桌面控制公司电脑.远程公司内网办公系统.调阅公司文件资料.远程公司内网服务器是个问题.而解决方案其实很简单,做内网穿透就可以突破局域网的限制,轻松实现公网访问内 ...

  5. 【免费内网穿透】Windows远程桌面连接树莓派

    系列文章 [免费内网穿透]Windows远程桌面连接树莓派 使用固定的公网TCP端口地址远程桌面树莓派[内网穿透] 本篇文章主要分享如何在公网环境下,远程桌面连接家里的树莓派. 远程桌面环境,我们选择 ...

  6. 树莓派搭建网站,并免费内网穿透发布上线到公网

    系列文章 树莓派搭建网站,并免费内网穿透发布上线到公网 树莓派搭建WordPress网站,并内网穿透发布上线无需公网IP服务器 为树莓派上的WordPress网站配置自己的域名,并内网穿透发布上线公网 ...

  7. 几款永久免费内网穿透,好用且简单

    几款免费内网穿透工具小结 实际工作和生活中,常常遇到以下问题:如何让任何地方都能访问自己家里的笔记本上的应用?如何让局域网的服务器可以被任何地方访问到?如何在异地远程处理公司服务问题:企业员工如何在异 ...

  8. (免费)钉钉内网穿透教程

    钉钉内网穿透教程 免费的内网穿透针不戳 github地址:https://github.com/open-dingtalk/pierced 下载了之后打开文件地址,以window为例: 进入你下载的文 ...

  9. 最简单的FRP内网穿透教程

    1.概述 众所周知,局域网内部机器由于没有公网IP,因此无法被局域网外部的客户端直接访问.FRP就是这样一个用于内网穿透的应用,它需要一台拥有公网IP的服务器作为中转,实现访问内网机器的目的. 首先第 ...

最新文章

  1. cloud-init 工作原理 - 每天5分钟玩转 OpenStack(171)
  2. CentOS linux7 设置开机启动服务
  3. YTU 2412: 帮警长数一数【循环、分支简单综合】
  4. c++stl和std_std :: replace()函数以及C ++ STL中的示例
  5. Android特效 五种Toast具体解释
  6. java mina文件传输_如何将Apache MINA FTP服务器中上传的文件重定向到数据库?
  7. Android 循环缓冲区
  8. Keli5 更改任意喜欢的字体
  9. Tomcat8正确配置环境变量详细方法
  10. LSB信息隐藏的卡方分析
  11. 固态硬盘重装系统后进入老系统找东西
  12. c语言如何编一个警报声音,电脑如何自定义警报的声音具体该如何操作
  13. python前面三个大于号是啥_JavaScript 无符号位移运算符 三个大于号 的使用方法...
  14. 用C语言求最小公倍数和最大公约数
  15. C++ 带逗号输入数组(大厂笔试输入出现多次)
  16. 数据库同步有哪些方式?【怎么保障目标和源数据一致性】
  17. VScode Extension activation failed的解决方法
  18. 你所不知道的运算符- 单目运算符
  19. 使用virtualenv搭建Python下的Flask开发环境,ubu测试有效
  20. BandZip cmd调用参数

热门文章

  1. 跨模态/多模态 cross-modal
  2. ZOJ3716 Ribbon Gymnastics(贪心)
  3. 【读书笔记】《怪诞行为学》丹·艾瑞里
  4. 1.1亿!罗永浩首场直播爆卖背后:放下面子赚钱,才是成年人最大的体面
  5. 爬取财经新闻+新闻评论(一网打尽)
  6. 网络猫只有计算机和机顶盒两个口,光猫绑定VLAN解决网络和IPTV共用一根网线的问题...
  7. 《区块链原理、设计与应用》一3.4 资源共享
  8. 【java笔记】day01
  9. 解决 邮件推送ImportError: No module named aliyunsdkdm.request.v20151123.SingleSendMailRequest
  10. 淘宝电影成全国最大在线选座平台 覆盖702家影院