来吧兄弟,一起玩一起讨论!
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 wxl 于 2019-10-11 18:05 编辑
前段时间反复折腾了好久花了不少时间,今天终于有时间整理,给大家分享一下用树莓派做的内网穿透盒子,整体实现方法基于zerotier的方法,zerotier就不多说了,最近这个东西比较火,估计大家都听说过,做这个盒子也是刚好碰到一个网络问题需要解决,所以就自己动手做了这么个东西,废话不多说,上干货:
DIY这个东西主要分3步,
第一步:当然是硬件部分,去某宝上购买一个树莓派,当时我实验的时候是购买的是这么个东西
基本上是树莓派最低的配置了,裸板当然不行,也得给配个盒子啦,其实做这个网络穿透设备觉得用不了多高要求的硬件,唯一的要求是低功耗,工作稳定,插上就不用管了。这个板子本身不带网卡,还得给配个usb网卡,基本上这个都是在这些店子一起可以买到的,留意一下网卡要100M的,否则网速就太次了,高了也没用,这个板子的usb是2.0的,再说1000M的网卡对目前的宽带来说还是超前,手机访问家里的NAS的话,100M速度的网卡来做转接也足够了,当时配的是这么个网卡,树莓派带的2个Micro usb口,一个5V供电,一个接这个网卡,
最后需要准备的硬件就是一张tf卡来装系统了,基本上4G的卡就可以用了,估计一般人家里都有,没有网上淘一个,网上估计也没有这么小的卡卖了,买个8G,16G的都行 ,速度高点的好些,启动起来快。这样基本上所有的硬件都准备好了。供电电源呢就随便拿个手机充电器就好了,或者现在的路由器带usb口的也可以供电,供电电源线拿个microusb手机充电线就好了,每人家里都有的东西就不多说。
第二部是刷写树莓派的系统:
去树莓派的官网下载需要安装的镜像文件,下载个lite 版的最小镜像就好了
https://www.raspberrypi.org/downloads/raspbian/
然后拿工具把解压出来的img 文件刷写到tf卡上,刷写的工具有很多,我用的是如下这个
刷完系统后,tf卡会被分成两个区,一个windows可以访问的 boot区,打开boot区,在boot根目录上用写字板新建一个文件 命名ssh,注意把txt的扩展名称去掉,目的是打开树莓派的ssh访问,树莓派默认关闭的ssh权限,需要打开以便继续后面的安装配置工作。
做完上面的步骤后,弹出tf卡,把tf卡插到树莓派卡槽里面就可以通电开机了,通电开机后等个30秒后系统启动完成,继续下一步安装。记得开机前接好网线。 在自己家路由器的管理页面里面查找刚启动完成的树莓派,找到树莓派分配的IP地址,地址找到后继续下面的安装配置工作。 这里需要用到2个软件,一个ssh软件,一个scp/sftp的软件,方便来进行下面的配置安装工作。我用的2个软件是winscp 和 putty,大家可以去搜索安装到自己电脑上面,然后就可以开始给树莓派进行安装配置了 首先打开putty,用ssh连接树莓派的后台,地址按照自己的地址来填,点击open,打开ssh连接,第一次连接会有提示连接密钥确认,确认后按照提示输入用户名密码登陆树莓派后台,树莓派默认的用户密码是 pi/raspberry, 登陆后需要开启一下root用户的访问 ,修改如下目录文件/etc/ssh/sshd_config 使用 nano 编辑器来修改开启root的访问:nano /etc/ssh/sshd_config ,按Ctrl+W 查找 PermitRootLogin ,找到后去掉前面的注释#号,把值改成yes, 按Ctrl+o 保存更改,ctrl+x 推出编辑器,然后输入reboot 重启 树莓派,重启完成后,重新 putty 登陆树莓派继续
继续,继续,打字打得头晕,用上面的pi 用户密码,登陆后,输入
sudo passwd root ,修改root用户的密码,修改完成后,sudo passwd --unlock root ,解锁root的登陆, 操作完成后重新用root身份登陆树莓派后台,安装zerotier 软件,命令如下:curl -s'https://raw.githubusercontent.com/zerotier/download.zerotier.com/master/htdocs/contact%40zerotier.com.gpg'| gpg --import && \
if z=$(curl -s'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash;fi
输入完成后回车,系统将会自动完成软件的安装工作,等软件提示安装完成回到命令提示符后,输入: zerotier-cli status 查看zerotier是否安装正确完成,提示的状态是online的话就ok了。
接下来的工作是去zerotier的网站上面注册一个账号给自己用:
https://my.zerotier.com/login
右上角,创建自己的zerotier账号,账号建好了后,点network,默认系统已经创建好了一个网络,如果没有,自己创建一个,复制那串网络的ID数字,回到 putty的树莓派界面,输入zerotier-cli join ***********, 回车 来加入你的虚拟网络,星号就是刚才复制过来的那串网络id字符,回车后系统会提示加入ok
再次回到zerotier 的网络管理页面,点击刚才那个网络id的蓝色字符,进入网络列表,刷新列表,可以看到你刚才加入的树莓派的信息已经出现在列表里面
点击左边的授权确认树莓派的加入。至此工作已经完成了一大半。
继续,继续。。。
当看到树莓派已经连接上zerotier以后,接着下面的步骤:
ssh登陆盒子的后台,修改路径/etc/sysctl./etc/sysctl.conf 的条目net.ipv4.ip_forward = 1,从而开启盒子的IP包转发
接下来: 在桥接盒子上添加如下3条Iptables 规则用来转发数据:
iptables -t nat -APOSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -ieth0 -o zt5u47o6fj -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -izt5u47o6fj -o eth0 -j ACCEPT
上面的zt5u47o6fj 是虚网卡的名称,看一下你自己盒子zerotier 软件创建的虚网卡名称是什么,修改成你的一样名称
添加完iptable规则后
设定规则开机自启动,首先,保存现有的规则:
iptables-save >/etc/iptables.rules
然后新建一个bash脚本,并保存到/etc/network/if-pre-up.d/目录下:
#!/bin/bash
iptables-restore </etc/iptables.rules
这样规则就会开机自己启动了,
最好一步,在zerotier 管理界面里面添加路由:
这样所有工作就完成了,所有装了zerotier的终端就在一个虚拟内网了,这样和树莓派盒子在一个实体物理内网的其他设备的数据包进行转发,这个即使其他设备没有安装(不方便,或者不能)zerotier的设备也是可以在同一个虚拟网里面访问了
例如: 树莓派盒子的IP是192.168.0.2, 家里的其他设备例如电视机的IP是192.168.0.3,如果你笔记本电脑装了zerotier,这样不论你在哪里上网,都可以直接用192.168.03.这个绝对的ip地址来访问家里的电视机了,而不需要管实际的网络接入如何变化(当然网段不要有重复)
|