N2N(docker 安装)实现远程访问家里群晖

  • 前言
  • 部署
    • 阿里云ECS安装n2n supernode 及 edge 节点
    • 在黑群晖上安装 edge节点
    • windows 安装edge节点
  • 测试
  • 遇到的问题
    • 检查tun模块状态
    • 测试tun.ko模块是否有效
    • 使tun.ko模块持久化

前言

本人家里搞了个黑群晖,除了存储一些照片外,还搭建了一些小服务,远程唤醒家里的电脑等等。无奈使用的是移动宽带,无法获取IPv4 的公网IP地址,所以开启了IPv6 用于外部访问,但现在IPv6 网络环境相对较少,比如在公司要访问家里网络还得使用手机开数据热点。着实不方便(流量用不起~~)。

刚好前段时间阿里云搞活动,两百多买了3年的基础版ECS,想办法利用起来

  • 搞FRP等内网穿透,一个局限性通过服务器转发,服务器带宽过小,这也是当初选择ipv6的主要原因。

  • 使用p2p vpn,这种方式服务器只起到牵线搭桥作用,建立连接以后,让连接的两端直接通讯(当然实际点对点建立跟NAT类型有关,如果建立失败还是使用服务器进行数据转发)。常用的N2N、Tinc、PeerVPN以及ZeroTier,此使用N2N搭建。

    说明 内网穿透之n2n-介绍及使用说明

    经测试很遗憾,自己网络的NAT类型为Symmetric NAT,没有打通点对点的连接方式,还是用服务器的龟速转发。可以使用NatTypeTester测试下网络类型,有兴趣的可以尝试下。

部署

直接使用docker进行部署,安装docker网上一堆,这里就忽略了。。

阿里云ECS安装n2n supernode 及 edge 节点

# 启用supernode
docker run -dit --name n2n_supernode -e SUPERNODE_PORT=10000 --network=host --restart=always forgaoqiang/n2n_supernode:latest# 也可以在服务器上启用edge node,根据实际修改
docker run -dit --network=host --privileged --name=n2n_edge  --restart=always \
-e EDGE_PORT=10001 \
-e EDGE_SUPERNODE=XXX.XXX.XXX.XXX:10000 \
-e EDGE_TUN_NAME=edge0 \
-e EDGE_IP=10.10.10.10 \
-e EDGE_NETMASK=255.255.255.0 \
-e EDGE_COMMUNITY=ali2home \
-e EDGE_KEY=ali2home \
forgaoqiang/n2n_edge

ps:阿里云服务还需在控制面版安全策略组,开放10000 端口。

在黑群晖上安装 edge节点

# edge node,根据实际修改
docker run -dit --network=host --privileged --name=n2n_edge  --restart=always \
-e EDGE_PORT=10001 \
-e EDGE_SUPERNODE=XXX.XXX.XXX.XXX:10000 \
-e EDGE_TUN_NAME=edge0 \
-e EDGE_IP=10.10.10.20 \
-e EDGE_NETMASK=255.255.255.0 \
-e EDGE_COMMUNITY=ali2home \
-e EDGE_KEY=ali2home \
forgaoqiang/n2n_edge

windows 安装edge节点

windows 使用 exe软件安装,也不展示了。

测试

正常启动后


遇到的问题

在黑群晖中启动docker 报错

# docker logs -f n2n_edge
07/Sep/2021 05:55:38 [edge.c:594] Starting n2n edge 2.5.0 May 16 2019 14:54:42
07/Sep/2021 05:55:38 [edge_utils.c:1694] Adding supernode[0] = XXX.XXX.XXX.XXX:10000
07/Sep/2021 05:55:38 [edge.c:613] ip_mode='static'
07/Sep/2021 05:55:38 [tuntap_linux.c:81] ERROR: tuntap open() error: No such file or directory[2]. Is the tun kernel module loaded?

检查tun模块状态

检查是否安装了 tun 模块:

lsmod | grep tun

如果结果为空,请尝试安装它:

insmod /lib/modules/tun.ko

如果一切顺利,继续进行下一个测试。

测试tun.ko模块是否有效

确保 tun.ko 模块可以正常工作:

mkdir /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
cat /dev/net/tun

如果 cat 命令的返回结果是 File descriptor in bad state,则表示模块已正确安装。

使tun.ko模块持久化

模块安装需要在每次 Syn­ol­ogy 重启时保持持久性,就必须重复使用 insmod 命令。
可以创建开机脚本搞定,执行如下命令进行创建:

cat <<EOF > /usr/local/etc/rc.d/tun.sh #!/bin/sh -e insmod /lib/modules/tun.ko EOF

给脚本可执行权限:

chmod a+x /usr/local/etc/rc.d/tun.sh

参考连接: https://www.moewah.com/archives/2750.html

N2N(docker方式安装)实现远程访问家里群晖相关推荐

  1. Docker 方式安装 Nginx 、阿里云服务器上装 Ngnix

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 非 Docker 方式安装,直接 Linux 安装见另一文:Linux 上 安装 nginx .阿里 ...

  2. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)...

    前期博客 Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm方式和yum方式) 说在前面的话(看清楚就好!!!) 我这篇博客,是两种方式都 ...

  3. RabbitMQ安装+配置远程访问+集群(windows)

    RabbitMQ安装+配置远程访问+集群(windows) 1.安装RabbitMQ 1.下载安装包: 运行环境erlang: http://www.erlang.org/downloads 安装包: ...

  4. 以Docker方式安装和配置Kong网关和Konga控制台

    文章目录 以Docker方式安装和配置Kong网关和Konga控制台 前言 安装Kong 创建容器网络 启动PostgreSQL数据库 初始化数据 对Kong Admin API作安全防护 启动Kon ...

  5. Docker方式安装巡风

    Docker方式安装巡风系统[基于CentOS7.6] # yum update # curl -sSL https://get.docker.com/ | sh # yum install git ...

  6. 解决无公网IP,远程访问黑群晖NAS

    黑群晖无法直接用QuickConnect进行远程访问,以及由于IPV4资源的枯竭,一般不会被分配到公网IP.想要实现在外远程访问黑群晖NAS,可以做内网穿透,通过第三方公网IP服务器进行数据转发,以实 ...

  7. 群晖nas中使用registry搭建docker镜像私人服务器以及设置群晖远程docker服务

    群晖nas中使用registry搭建docker镜像私人服务器以及设置群晖远程docker服务 折腾群晖服务器很有快感,一是因为自家群晖ds216+低功耗,24小时开机也不觉得费电,二是因为群晖系统也 ...

  8. 群晖php安装目录,如何在群晖上搭建网盘目录?(无Docker) 来自 世界三傻

    Hello,大家好啊,这里是爱拖更的世界三傻 最近买了一个矿渣----猫盘 好心的卖家帮我刷好了群晖 各位应该都知道群晖有一个套件----cloud sync 我大概说一下这个套件有什么用 可以同步网 ...

  9. Unraid以Docker方式安装配置qbittorrent的注意事项

    文章目录 0.前言 1.qbittorrent是什么? 2.在UnRaid中安装部署设置qbittorrent 2.1.关于qbittorrent的安装 2.2.关于qbittorrent的配置 3. ...

最新文章

  1. uniapp实现页面左右滑动,上下滑动事件
  2. Chapter 0: 引论
  3. Hibernate two table same id
  4. 双指针--Codeforces Round #645 (Div. 2) d题
  5. 02-合并frame
  6. html导航教程视频,导航_HTML+CSS前端基础知识教程_腾讯视频
  7. 历史习题与答案解析(1-50期)
  8. JAVA面试要点004_JAVA编程过程中为了性能优化_应该注意到的地方
  9. 【论文写作】SpringMVC学籍管理系统如何画用例图(2)
  10. PHP经典面试题汇总(续)
  11. 2018 蓝桥杯省赛 B 组模拟赛(五)题 G题
  12. [.NET] : 使用自定义对象当作报表数据源
  13. Android Studio中.9.png文件出错问题
  14. 5.这就是搜索引擎:核心技术详解 --- 检索模型与搜索排序
  15. Android之应用市场排行榜、上架、首发(非原创)
  16. 【软工】week3-个人阅读作业-软件案例分析
  17. 欧拉角到方向余弦矩阵
  18. 银河麒麟v10离线安装docker-ce
  19. win7 64位系统加载dsoframer.ocx问题解决方法
  20. 来了,掏心窝的最重要3条建议

热门文章

  1. TIA Portal高级编程
  2. Linux 中Mysql出现‘> 如何退出?
  3. 基于曲线插值的规划方法(Interpolating Curve Planners)
  4. 你拥有的最宝贵的财富是什么?
  5. 在vs2017上如何创建一个静态库
  6. 在电脑的网络中看不到计算机,在网上邻居中看不到自己的电脑也看不到别人的解决方法...
  7. Mysql黑马学习笔记
  8. 世界著名logo设计文化解读
  9. 这58张图片,能让你笑出八块腹肌!
  10. 服务器选共享IP还是独立IP好