目录

  • 一、概述
    • 1.1 定义
    • 1.2 常规应用
  • 二、FRP自有公网服务器
    • 2.1 下载软件
    • 2.2 公网服务器设置
    • 2.3 内网PC设置
    • 2.4 成果
  • 三、FRP第三方免费服务器
    • 3.1 下载
    • 3.2 创建隧道
    • 3.3 切换到帮助
    • 3.4 网站设置
      • 3.4.1 无自有域名
      • 3.4.2 自有域名
  • 四、zerotier自有服务器
    • 4.1 概述
    • 4.2 根服务器设定
      • 4.2.1 端口开放
      • 4.2.2 安装
      • 4.2.3 配置
    • 4.3 客户端设置
      • 4.3.1 win10\mac客户端设置
      • 4.3.2 NAS客户端设置
      • 4.3.3 CentOS客户端设置
      • 4.3.4 安卓客户端设置

一、概述

1.1 定义

  • 判别:常规一个公司或一个小区内的所有电脑都处于运行商设计的局域网内,若在百度里输入IP 产生的结果和用命令ipconfig产生的结果不一样,则处于局域网内部
  • 功能:内网穿透技术旨在使内网主机和云服务器的端口产生映射关系,例如访问http://doubi.com:9000,会映射到局域网:http://192.168.1.123:6000

1.2 常规应用

  • 后端自己维护:网站后端重要数据,如数据库等放在本地局域网服务器里
  • 后台登录:将本地的ssh端口(22)、后台端口(根据软件确定)映射到具有公网id的服务器
  • 查看当前内网ip位置
    # win10使用:也可通过此命令查看ip网络层级结构
    >>> tracert 8.8.8.8
    # centos使用:也可通过此命令查看ip网络层级结构
    >>> traceroute 8.8.8.8
    # 此处为当前PC的网关1  gateway (192.168.1.1)  0.291 ms * *
    # 还是内网:要是非路由器ip,则为服务提供商给套的内网ip
    # 若出家里路由器ip后第一个还是内网ip,则只能用内网穿透进行外网访问2  10.200.96.1 (10.200.96.1)  12.666 ms  12.724 ms  12.684 ms
    # 同上3  10.1.2.13 (10.1.2.13)  9.560 ms  9.519 ms  9.579 ms4  * * *
    # 同上5  10.1.1.121 (10.1.1.121)  9.396 ms  9.344 ms  9.439 ms
    # 进入Internet,此为公网ip进行的转发6  211.139.0.57 (211.139.0.57)  29.251 ms  4.201 ms  14.723 ms
    .......
    # 到达谷歌DNS服务器
    17  dns.google (8.8.8.8)  40.245 ms  42.933 ms  46.931 ms
    

二、FRP自有公网服务器

  • 购买了阿里云、腾讯云等服务器的
  • 如果流量小,建议用第三篇方法

2.1 下载软件

  • 下载文件:

    # 版本页面
    https://github.com/fatedier/frp/releases
    # 路由命名规则:download/版本号/frp_版本号_linux_amd64.tar.gz
    wget https://github.com/fatedier/frp/releases/download/v0.39.1/frp_0.39.1_linux_amd64.tar.gz
    
  • 文件目录frp下

2.2 公网服务器设置

  • 公网服务器配置文件:frps.ini

    [common]
    # 公网服务器的通信端口(与内网PC间)
    bind_port = 7001
    # 通信密码,最好别用常用密码
    token = 1234567890
    
  • 公网服务器服务文件:systemd文件夹下的frps.service
    [Unit]
    Description=Frp Server Service
    After=network.target[Service]
    Type=simple
    # 只改下面这一句,注意frps和frps.ini位置
    ExecStart=nohup /root/bin/frp/frps -c /root/bin/frp/frps.ini [Install]
    WantedBy=multi-user.target
    
  • 启动
    • 前置处理:将frp文件夹拷贝到/root/bin文件夹内,将frps.service放在/lib/systemd/system文件夹内
    • 服务端常用命令
      systemctl daemon-reload           # 重新加载服务配置文件
      systemctl start frps.service    # 启动服务
      systemctl enable frps.service   # 设置开机启动
      systemctl status frps.service   # 查看服务启动情况
      systemctl stop frps.service     # 关闭服务
      

2.3 内网PC设置

  • 内网PC配置文件:frpc.ini

    [common]
    # 公网IP地址
    server_addr = 12.23.45.67
    # 公网端口,需与frps.ini对应
    server_port = 7001
    # 通信时携带的口令
    token = 1234567890# ssh通信设置:常用于在外网以公网服务器为跳板ssh到内网服务器
    # 功能:公网6010端口接收到的请求会转发到内网PC的22端口
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    # 公网服务器端口:后台(如宝塔)和服务商(如阿里云和腾讯云都有线上防火墙阻挡端口)
    remote_port = 6010# 后台api端口:本地http(80端口)服务和公网服务器6020端口做映射
    [api]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 80
    # 公网服务器端口:后台(如宝塔)和服务商(如阿里云和腾讯云都有线上防火墙阻挡端口)
    remote_port = 6020# 宝塔面板端口映射
    [bt_pannel]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 8888
    # 公网服务器端口:后台(如宝塔)和服务商(如阿里云和腾讯云都有线上防火墙阻挡端口)
    remote_port = 10004
    
  • 内网PC服务文件:systemd文件夹下的frpc.service
    [Unit]
    Description=Frp Client Service
    After=network.target[Service]
    Type=simple
    # 只改下面这一句,关注frpc和frpc.ini位置
    ExecStart=nohup /root/bin/frp/frpc -c /root/bin/frp/frpc.ini[Install]
    WantedBy=multi-user.target
    
  • 启动
    • 前置处理:将frp文件夹拷贝到/root/bin文件夹内,将frpc.service放在/lib/systemd/system文件夹内
    • 客户端常用命令
      systemctl daemon-reload           # 重新加载服务配置文件
      systemctl start frpc.service    # 启动服务
      systemctl enable frpc.service   # 设置开机启动
      systemctl status frpc.service   # 查看服务启动情况
      systemctl stop frpc.service     # 关闭服务,每次有新增端口都要重新启动下服务
      

2.4 成果

至此,如果公网ip为12.34.56.78,内网ip为192.168.1.123,公网ip对应的域名为http://doubi.com
则:

  • ssh访问:http://doubi.com:6010映射为http://192.168.1.123:22
  • 网站接口访问:http://doubi.com:6020映射为http://192.168.1.123:80
  • 网站宝塔后台访问:http://doubi.com:10004映射为http://192.168.1.123:8888

端口开放:三个访问对应端口防火墙必须放行,腾讯云、阿里云服务器均存在线上防火墙,宝塔面板也有防火墙

三、FRP第三方免费服务器

  • 使用第三方提供的公网ip服务器线路
  • 此处以sakura为例(签到拿流量,最大到128G)

3.1 下载

  • 命令:uname -m,CentOs系统

  • 列表

  • 内网centos服务器输入命令

    # 切换到bin目录
    cd /usr/local/bin
    # 下载软件:这里有时候内网不能下,我用云端服务器可以直接下载,
    # 然后可以拷贝到其他服务器上用
    wget -O frpc <下载地址>
    # 设置权限
    chmod 755 frpc
    # 检测版本
    frpc -v
    

3.2 创建隧道

  • 根据需要选22、80、443端口

3.3 切换到帮助

  • 首页位置
  • 帮助目录区域
  • <unit名称>及访问
    位置:首页–》穿透–》隧道列表

3.4 网站设置

3.4.1 无自有域名

  • 若3.2节为端口80
    直接访问server_addr:端口号(端口号详3.3节<unit名称>及访问),即访问本地服务器的http://ip效果

3.4.2 自有域名

  • 以下以腾讯云为范例
  • 此时访问http://自有域名:端口号(端口号详3.3节<unit名称>及访问),即会跳转到内网服务器的http://ip

四、zerotier自有服务器

4.1 概述

  • 概述:ZeroTier是一个国外的服务商所提供的基于P2P的组网方案,它可以通过软件的形式实现将我们需要组网的设备加入到一个虚拟的局域网中,从而实现数据的交换
  • 组网策略:
    1.组网设备接入Zerotier,并通过ID加入指定的虚拟网络。
    2.当设备之间发生数据交换时,网络调度设备间尝试P2P直连。
    3.失败时,从网络中寻找moon服务器作为中转

4.2 根服务器设定

4.2.1 端口开放

  • 腾讯控制台:开启4000/tcp、9993/tcp、9993/udp

4.2.2 安装

  • 安装docker

    # 安装docker
    yum install docker -y
    # 启动|关闭|重启docker服务
    systemctl start|stop|restart docker
    # 开机启动docker
    systemctl  enable docker
    # 查看docker当前状态
    systemctl status docker
    # 测试docker是否正确安装及功能完备
    docker run hello-world
    
  • 启动zerotier容器
    docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=mrdoc.fun -p 4000:4000 keynetworks/ztncui
    
  • 启动中转moon服务器
     docker run --name zerotier-moon -d --restart always -p 9993:9993/udp jonnyan404/zerotier-moon -4 [公网服务器ip]# 查看启动情况:注意【moon id】,后面客户端要用docker logs zerotier-moon
    

4.2.3 配置

  • 访问 http://公网ip:4000,初始用户名:admin,初始密码:mrdoc.fun

    密码:改密码后一定记住密码,暂时不知道咋能重设密码,若忘记了只能删除根服务器的docker容器重做一个

  • 登录设置根服务器

    • 设置虚拟局域网名
    • 设置虚拟局域网ip分配机制

4.3 客户端设置

4.3.1 win10\mac客户端设置

  • 下载客户端:传送门
  • 安装好后对话框最底部填
  • 根服务器授权

    静态IP:单击IP可设置IP

  • 连接moon服务器
    cd C:\ProgramData\ZeroTier\One
    # 连接moon服务器: 根服务器上运行docker logs zerotier-moon 获取moon_ID
    # 注意mac需要管理员权限 sudo
    zerotier-cli orbit [moon_ID] [moon_ID]
    

4.3.2 NAS客户端设置

  • 针对DSM7.X版本:在套件中心里安装docker
  • 开启SSH:控制面板==》终端机和SNMP==》启动SSH功能(应用)
  • 使用Finalshell或其他工具SSH连接nas:账号、密码是登录nas的账号密码
    # 获取管理员权限
    sudo -i
    # 再输一遍管理员密码
    > Password:
    
  • 创建虚拟网络设备TUN
    # 脚本:创建虚拟网络设备TUN,并设为开机启动
    echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
    # 给tun.sh脚本以执行权限
    chmod a+x /usr/local/etc/rc.d/tun.sh
    # 运行脚本创建tun设备
    /usr/local/etc/rc.d/tun.sh
    # 查看tun设备是否创建成功
    ls /dev/net/tun
    # 创建存放配置文件的目录
    mkdir /var/lib/zerotier-one
    # 启动docker容器:网络是host模式,有挂载-v,重装后数据不会丢失
    docker run -d           \--name zt             \--restart=always      \--device=/dev/net/tun \--net=host            \--cap-add=NET_ADMIN   \--cap-add=SYS_ADMIN   \-v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest
    # 连接moon服务器: 根服务器上运行docker logs zerotier-moon 获取moon_ID
    docker exec zt zerotier-cli orbit [moon_ID] [moon_ID]
    
  • 日常使用
    # 进入容器查看节点状态
    docker exec -it zt zerotier-cli status# 进入容器加入虚拟局域网
    docker exec -it zt zerotier-cli join 虚拟局域网id# 升级容器:前提为停止并删除容器,拉取最新镜像,重新创建容器
    docker pull zerotier/zerotier-synology:latest
    
  • 根服务器授权
  • 使用示例:在offPC网页输入

    设备互访:任何加入此虚拟局域网中的主机,均可直接通过根服务器的ip列表,直接访问注册的机器

4.3.3 CentOS客户端设置

  • 测试为centos7

    # 下载并运行官方脚本
    curl -s https://install.zerotier.com | sudo bash# 设置服务开机启动
    sudo systemctl enable zerotier-one.service# 查看服务状态
    zerotier-cli status# 加入网络:注意去根服务器授权
    sudo zerotier-cli join 虚拟网络id# 连接moon服务器: 根服务器 docker logs zerotier-moon获取moon_ID
    zerotier-cli orbit [moon_ID] [moon_ID]# 离开网络
    zerotier-cli leave 虚拟网络id# 查看所有的网络
    zerotier-cli listnetworks
    
  • 根服务器授权
  • 测试:在offPC

4.3.4 安卓客户端设置

  • 安装软件
  • 加入网络
  • 在根服务器上授权(略)

centos7内网穿透(frp、zerotier)相关推荐

  1. 内网穿透-Frp(1)使用樱花Frp(Sakura Frp)进行免费的内网穿透操作步骤

    背景介绍:因需要在4G路由器(openwrt,mips架构)上提高页面和视频流展示,需要在公网能访问的,问题:4G卡不能固定IP,所以没办法使用公网+端口映射方式进行:故采取内网穿透frp方式进行公网 ...

  2. 记录linux的内网穿透frp操作

    记录linux的内网穿透frp操作 由于本人在宿舍偶尔需要查看实验室内电脑程序结果及传输一些文件,不得不利用frp内网穿透,需要准备以下三台电脑,如果有多个客户端,也可以进行配置: 一.一台具有公网i ...

  3. 内网穿透 --- frp

    中文文档:https://github.com/fatedier/frp/blob/dev/README_zh.md 手机+frp内网穿透搭建随身携带的服务器:https://blog.csdn.ne ...

  4. 使用内网穿透frp做远程桌面连接

    索引 安装服务端 以windows为服务端安装 以CentOS为服务端安装 安装客户端 开始连接远程 登录控制台 CentOS服务端设置开机自启动 Windows客户端/服务端设置开机自启 参考文章: ...

  5. CentOS7内网穿透(公网访问内网)SakuraFrp-frpc配置(从0开始)

    CentOS7樱花内网穿透(公网访问内网)SakuraFrp-frpc配置 初始环境 1:一台装好的linux系统(我这里使用的是centOS7) centOS7U盘安装 2:确保你的linux系统的 ...

  6. 免费内网穿透方案——ZeroTier+OpenWRT

    关于免费内网穿透方案的研究 一直以来在研究一些关于内网穿透的方案,都是一些很不靠谱的营销文章.索性很长一段时间就没了兴趣做这件事情,偶然的机会听到了ZeroTier,居然让我有种发现新大陆的喜悦.可能 ...

  7. 内网穿透------frp配置(服务端客户端配置)超详细的那种~~~

    强调:配置文件中每行代码最后一定不要留空格!!! 配置文件中尽量不要有注释,必须写的话,要用符合的语法写: 分号; 第一步:云服务器上域名解析添加(前提是有域名已经备案) 这里有对应操作截图文件 第二 ...

  8. 内网穿透工具zerotier的安装及使用

    zerotier 内网穿透工具,可以搭建用于自己的虚拟网络,经过授权连接成功之后彼此都在同一网段,可以像在局域网一样互相访问. 由于up只接触过这几个系统,就无法在此介绍MacOS.iOS.FreeB ...

  9. 内网穿透 frp : 隐藏通信隧道技术

    1 frp介绍 注意事项: 1)服务器端和内网机器端下载的版本要相同,否则可能会影响内网穿透 2)根据服务器系统选择合适的脚本 脚本主要分为服务端与客户端文件 1.外网服务器端用到的是Frps和Frp ...

  10. 【内网穿透】zerotier构建局域网,闲置电脑充当高性能服务器。

    目录 一.有何作用? 二.具体配置 1.创建账号 2.Windows安装 3.Centos安装 4.验证 一.有何作用? 概述:使用zerotier构建局域网,能在无公网ip的情况下,将各台服务器连接 ...

最新文章

  1. Head First设计模式之目录
  2. 残差网络(Residual Networks, ResNets)
  3. df.where(dfmask, targetValue)展示
  4. java的多线程访问共享变量_java多线程通信之共享变量
  5. java 管理系统登陆完毕后关闭窗口_【求助】登录窗口登录成功后隐藏窗口
  6. printf函数讲解
  7. 【转载】生机勃勃的秋菊freeeim
  8. Tomcat 工作原理【转】
  9. Mathtype 免安装 | office自带UnicodeMath和LaTeX编辑功能
  10. Tensorboard存数据代码解释
  11. 各版本opencv官网下载路径
  12. PP助手推大数据智能分发服务
  13. python制作动态的微信个人名片
  14. instead of 触发器的用法
  15. SpringBoot系列 - 集成JWT实现接口权限认证
  16. Http 协议学习笔记 (燕十三老师)
  17. 2019下半年第一个流行词---宏颜获水
  18. Hazelcast Jet Processor
  19. 第二章 关系映射详解
  20. 2.1 內积与欧几里得空间

热门文章

  1. 基于51单片机的电子罗盘数字指南针HCM8553原理图程序设计
  2. xci转nsp工具_【ns新系统11.0.0发布】安装工具已经更新至4.2【后面附上批处理内容修改】...
  3. switch【耀西的手工世界xic】破解xic文件下载
  4. 刚接手的项目代码 怎么看_你们刚开始是怎么看英文文献的?
  5. 计算机专业的创新创业规划书,计算机及相关专业创新创业教育指导书.pdf
  6. js 修改html编码,Javascript 中对HTML编码和解码的方法
  7. Matlab-信号处理工具箱
  8. NC文件按时序维度拆分
  9. Activemq 下载地址
  10. 从遥感影像到土地利用转移矩阵