前言

最近周末在搭建个人网站,花了两天了解了下,目前基本上已经完成了个人博客网站的搭建,但是网站备案还没处理,只能IP访问,就不贴出了。

现把途中记录的笔记分享下。

内网穿透不仅仅用于个人网站搭建把数据拿捏在本地,主要是为了方便后期可能会玩or开发一些物联网设备而提前准备的环境。

原文:李柱明博客园:https://www.cnblogs.com/lizhuming/p/16885898.html

方案

方案1:公网

独立公网,IPv4的就不要想了。

动态公网:除了移动,电信和联通,和客服沟通下,都会很大方。

有了动态公网IP后,就用DDNS来绑定自己的域名就好了。DDNS服务商可以百度随便找个,因为我个人没有动态公网IP,就没有细究。

参考方案:DNSPOD

方案2:第三方内网穿透软件

花生壳

花生壳:贵,免费的不够用。

cpolar

cpolar:目前在用,个人使用感觉,比花生壳要好。

先下载去官网免费版的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配置教程之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$ ls
frpc 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 = lzm
dashboard_pwd = 123456
enable_prometheus = true # frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

启动FRP服务端

拷贝到专门的文件夹&启动服务器:两种方案:

  1. 直接在当前终端运行:
./frps -s frpc.ini
  1. 使用systemctl命令组:

    • 需要注意的是,新版本的release已经不提供systemd相关脚本了,需要的可以下载旧版本获取。
# 在etc文件夹下创建frp文件夹,把frps.ini服务配置拷贝过去
sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
# 把frps固件包拷贝到系统的命令库中
sudo cp frps /usr/bin
# 把frps的单元文件拷贝到用户lib
sudo cp systemd/frps.service /usr/lib/systemd/system/
# 使能&启用
sudo systemctl enable frps
sudo systemctl start frps

验证是否启动成功

验证服务端是否成功启动:在浏览器中输入:http://服务器公网IP:FRP后台端口号,如:http://1.244.12.12:7001

输入用户名和密码出现下图即可说明服务端成功启动。

可能遇到的一些问题

  1. 验证进入后台管理时失败:在验证前需要检查防火墙。云服务器不是在命令行配置防火墙,而是在后台。对于腾讯云服务器,需要在后台进入防火墙配置,然后添加规则,开放对应端口。

客户端配置

和服务端步骤差不多

下载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$ ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE

配置FRP服务端

修改服务端配置:

vim frpc.ini

文件内容:

# FRP客户端
[common]
server_addr = 服务器ip
# 与frps.ini的bind_port一致
server_port = 7000
# 与frps.ini的token一致
token = 123456 # 配置ssh服务
[ssh]
type = tcp
# 也可以是当前设备局域网内的其它IP
local_ip = 127.0.0.1
local_port = 22
# 这个自定义,之后再ssh连接的时候要用
remote_port = 7002

启动FRP客户端

./frpc -c frpc.ini

验证是否穿透成功

随便拿台能接入公网的设备进行ssh验证:

穿透成功:

【网络】内网穿透方案&FRP内网穿透实战(基础版)的更多相关文章

  1. frp内网 穿透映射使内网svn可外网访问

    起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...

  2. frp端口映射穿透内网

    前言 frp 是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持 TCP.UDP.HTTP.HTTPS 等协议类型,并且 web 服务支持根据域名进行路由转发. Github: ...

  3. 树莓派FRP内网穿透及自启动

    内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...

  4. 内网穿透—使用 frp 实现内外网互通

    前言 什么是内网穿透? 内网穿透,又叫 NET 穿透,是计算机用语.用通俗的说法就是你家里的个人电脑,可以直接被外网的人访问.例如你在公司,不通过远程工具,直接也可以访问到家里的电脑(本文章特指 we ...

  5. Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问

    Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 ​ 关键词: frp内网 ...

  6. 内网穿透工具--frp

    对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务是一个问题. 今天给大家介绍一款好用内网穿透工具 FRP,FRP 全名:Fast Reverse Proxy.FRP 是一个使用 ...

  7. frp内网穿透实战

    什么是frp frp是一个使用非常简单的开源内网穿透软件,代码地址:https://github.com/fatedier/frp ,使用条前提你需要有一台公网服务器,大致原理是:公网服务器监听某个端 ...

  8. 五、frp内网穿透客户端frpc.ini各配置参数详解

    [必须]标识头[common]是不可或缺的部分 [必须]frps服务端IPserver_addr = 0.0.0.00.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务 ...

  9. 解决外网与内网或内网之间的通信,NAT穿透

    在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行.问题就在于NAT.首先介绍下NAT. NAT的作用NAT(Network Address Translato ...

随机推荐

  1. python数据精度问题

    一.python运算时精度问题: 1.运行时精度问题在Python中(其他语言中也存在这个问题,这是计算机采用二进制导致的),有时候由于二进制和十进制之间对应问题会导致数值的精度问题,比如无法用有限个 ...

  2. 阿里云CentOS7安装K8S

    1. 在阿里云山申请三台云服务器 1.1 环境准备 完成配置后的信息 服务器IP 操作系统 CPU 内存 硬盘 主机名 节点角色 172.18.119.145 centos7 2 4G 50G k8s ...

  3. JavaScript 之 原型对象、对象原型 —— { }

    JavaScript -- 构造函数 // 构造函数 function Player(name, age) { this.name = name; this.age = age; } JavaScri ...

  4. Redis变慢?深入浅出Redis性能诊断系列文章(三)

    (本文首发于"数据库架构师"公号,订阅"数据库架构师"公号,一起学习数据库技术,助力职业发展) 本篇为Redis性能问题诊断系列的第三篇,主要从Redis服务层 ...

  5. VSCODE 配置远程调试环境

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16691460.html 我的需求是,在Windows桌面 ...

  6. 高性能 Java 计算服务的性能调优实战

    作者:vivo 互联网服务器团队- Chen Dongxing.Li Haoxuan.Chen Jinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...

  7. Linux使用密钥登录SSH

    输入命令和上传密钥时需要注意当前目录.账号和读写权限 生成密钥 使用服务器生成(方法一,推荐) 1.1生成密钥 #ssh-keygen(这里pwd为当前账号的home目录) 1.2下载密钥 .id_r ...

  8. ProxySQL的双层用户认证机制

    转载自:https://www.likecs.com/show-203802325.html 如果使用了ProxySQL来做中间路由,那么与我们平时登录数据库有一些区别:平时我们直接使用数据库的用户密 ...

  9. Elasticsearch:用户安全设置

    Elastic Stack的组件是不安全的,因为它没有内置的固有安全性. 这意味着任何人都可以访问它. 在生产环境中运行Elastic Stack时,这会带来安全风险. 为了防止生产中未经授权的访问, ...

  10. Traefik 2.0 实现自动化 HTTPS

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247484457&idx=1&sn=35112e98 ...