基础版 【网络】内网穿透方案&FRP内网穿透实战

目录

  • 前言
  • 方案
    • 花生壳
    • cpolar
    • 方案1:公网
    • 方案2:第三方内网穿透软件
    • 方案3:云服务器做反向代理
  • FRP简介
  • FRP资源
  • FRP原理
  • FRP配置教程之SSH
    • 下载FRP
    • 配置FRP服务端
    • 启动FRP客户端
    • 验证是否穿透成功
    • 下载FRP
    • 配置FRP服务端
    • 启动FRP服务端
    • 验证是否启动成功
    • 可能遇到的一些问题
    • 前期准备
    • 服务器配置
    • 客户端配置
前言最近周末在搭建个人网站 , 花了两天了解了下,目前基本上已经完成了个人博客网站的搭建,但是网站备案还没处理,只能IP访问,就不贴出了 。现把途中记录的笔记分享下 。
内网穿透不仅仅用于个人网站搭建把数据拿捏在本地 , 主要是为了方便后期可能会玩or开发一些物联网设备而提前准备的环境 。
原文:李柱明博客园:https://www.cnblogs.com/lizhuming/p/16885898.html
方案方案1:公网独立公网 , IPv4的就不要想了 。
动态公网:除了移动,电信和联通,和客服沟通下,都会很大方 。
有了动态公网IP后,就用DDNS来绑定自己的域名就好了 。DDNS服务商可以百度随便找个,因为我个人没有动态公网IP,就没有细究 。
参考方案:DNSPOD
方案2:第三方内网穿透软件花生壳花生壳:贵,免费的不够用 。
cpolarcpolar:目前在用,个人使用感觉 , 比花生壳要好 。
先下载去官网免费版的cpolar,然后配置映射即可 。免费的带宽1M,有4条映射(我试过,应该是每个客户端有4条映射可配置,而不是每个账号只有4条映射,这个算nice)
方案3:云服务器做反向代理先购买有个带公网IP的云服务器,然后用云服务器反向代理,利用这个云服务器做流量转发,原理和方案2一样,只是要自己实现流量转发 。
参考方案:云服务器+FRP+个人域名 。
FRP简介frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议 。
FRP资源FRP源码&教程:https://github.com/fatedier/frp
  • 更多穿透教程也可以参考官方demo,甚至源码 。
FRP原理
  • 服务端运行,监听一个主端口,等待客户端的连接;
  • 客户端连接到服务端的主端口 , 同时告诉服务端要监听的端口和转发类型;
  • 服务端fork新的进程监听客户端指定的端口;
  • 外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
  • 客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力 。
就是利用拥有公网的服务器帮忙转发数据 。
基础版 【网络】内网穿透方案&FRP内网穿透实战

文章插图
FRP配置教程之SSH前期准备需要一台具有公网IP的服务器 。
需要被穿透的内网设备 。
配置主要分两部分:
  • FRP服务端,布局在具有公网的IP的服务器 。
  • FRP客户端 , 布局在内网设备 。
FRP穿透配置文件参考:frp*_full.ini 。
服务器配置下载FRP下载release包:根据设备和frp版本下载:
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz解压:
tar -zxvf frp_0.45.0_linux_amd64.tar.gz相关文件:
  • frps*:是frp服务器相关文件 。
  • frpc*:是frp客户端相关文件 。
lzm@lzm-ubuntu:~/work/network/frp/frp_0.45.0_linux_amd64$ lsfrpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE配置FRP服务端修改服务端配置:
vim frps.ini文件内容:
# FRP服务端[common]# frp监听的端口 , 默认是7000,可以改成其他的bind_port = 7000# 授权码 , 请改成更复杂的token = 12345  # 这个token之后在客户端会用到# frp管理后台端口,请按自己需求更改dashboard_port = 7001# frp管理后台用户名和密码,请改成自己的dashboard_user = lzmdashboard_pwd = 123456enable_prometheus = true# frp日志配置log_file = /var/log/frps.loglog_level = infolog_max_days = 3

推荐阅读