利用ZeroTier搭建大内网…
本文最后更新于 281 天前,其中的信息可能已经有所发展或是发生改变。

ZeroTier是一个分布式网络虚拟机管理程序,建立在加密安全的全球对等网络之上。它提供与企业 SDN 交换机同等的高级网络虚拟化和管理功能,而且可以跨本地和广域网并连接几乎任何类型的应用程序或设备。

例如,我在路由器上装了 ZeroTier,路由器挂了一个硬盘,而现在我在外边想要访问这个硬盘,那么只需要运行电脑上的 ZeroTier,就能通过 Samba、FTP 等方式访问硬盘,而且看起来就像我就在家里一样。

这里仅介绍 ZeroTier 的简易用法

一、注册

地址:https://my.zerotier.com/

注册之后

免费套餐支持100个设备

二、创建网络

创建之后保持默认就行,建议避开自己的内网网段

三、加入网络

首先安装客户端

Linux执行

curl -s https://install.zerotier.com | sudo bash

然后加入网络

# 启动
zerotier-one -d
# 加入网络
zerotier-cli join <Network ID>

成功会提示 200 join OK

然后回到管理页允许加入

然后 ip addr 就会出现一个新接口

测试内网连接

香港HKBN-镇江

至此内网建立完成

四、其他指令

# 退出网络
zerotier-cli leave <Network ID>
# 查看网络
zerotier-cli listnetworks

卸载

yum remove zerotier-one
rm /etc/yum.repos.d/zerotier.repo

五、利用rinetd转发内网流量

由于我配置iptables跨网卡转发半天不成功,所以研究了下还是选择超级简便的rinetd

安装
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar zxvf rinetd.tar.gz
cd rinetd
mkdir -p /usr/man/man8
yum install gcc make
make && make install

http://www.boutell.com/rinetd/http/rinetd.tar.gz 目前是无法访问的(开发者转行放贷去了?),但可以用百度找到别人的备份哦…

配置

新建配置文件 /etc/rinetd.conf

# 设置允许访问的ip地址信息
# allow 192.168.2.*

# 设置拒绝访问的ip地址信息
# deny 192.168.1.*

# 设置日志文件路径
logfile /var/log/rinetd.log

# 例子: 将本机 8080 端口重定向至 188.131.152.100 的 8080 端口
# 0.0.0.0 8090 188.131.152.100 8080
创建启动脚本

/etc/init.d/rinetd

#!/bin/bash

EXEC=/usr/sbin/rinetd
CONF=/etc/rinetd.conf
PID_FILE=/var/run/rinetd.pid
NAME=Rinetd
DESC="Rinetd Server"

case "$1" in
    start)
        if [ -x "$PID_FILE" ]; then
            echo "$NAME is running ..."
            exit 0
        fi

        $EXEC -c $CONF

        echo -e "\e[1;32m$NAME is running\e[0m"
    ;;
    stop)
        if [ -f "$PID_FILE" ]; then
            kill `cat $PID_FILE`

            while [ -x "$PID_FILE" ]
            do
                echo "Waiting for $NAME to shutdown..."  
                sleep 1
            done

            rm -f $PID_FILE
        fi

        echo -e "\e[1;31m$NAME stopped.\e[0m"
    ;;
    restart)
        $0 stop
        $0 start
    ;;
    status)
        if [ -f $PID_FILE ]; then
            echo "$NAME is running ..."
        else
            echo "$NAME stopped."
        fi
    ;;
    *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 2
    ;;
esac

exit 0
chmod +x /etc/init.d/rinetd
启动
/etc/init.d/rinetd start
开机自启

在/etc/rc.local文件中添加/usr/sbin/rinetd即可

六、小结

ZeroTier建立的隧道速度很快,镇江-Hinet iperf3单线程实测20Mbps,ping延时60ms……非常适合特殊用途…….

本文部分参考

一分钟上手Rinetd——端口转发工具

ZeroTier 无公网IP实现内网穿透详细教程(P2P高效传输)

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇