首页 > 其他分享 >【网络】内网穿透方案&FRP内网穿透实战(基础版)

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

时间:2022-11-13 14:23:14浏览次数:68  
标签:frps 穿透 frp ini FRP 内网 服务端 客户端

目录

前言

最近周末在搭建个人网站,花了两天了解了下,目前基本上已经完成了个人博客网站的搭建,但是网站备案还没处理,只能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验证:

穿透成功:

标签:frps,穿透,frp,ini,FRP,内网,服务端,客户端
From: https://www.cnblogs.com/lizhuming/p/16885898.html

相关文章

  • redis中缓存穿透
         代码实现 //Stringkey=CACHE_SHOP_KEY+id;////1从缓存中查询上铺缓存//StringshopJson=stringRedisTemplate.opsForVa......
  • 使用frp端口映射实现内网穿透(SSH、HTTP服务)
    文章共1,262字,阅读完预计需要2分钟7秒。文章篇幅适中,可以放心阅读。参考:[使用frp端口映射实现内网穿透(SSH、HTTP服务)-勇者の小栈](https://www.ken-chy129.cn/......
  • 外网访问内网localhost web服务器
    在内网/局域网部署的web服务,只能在本地局域网内访问。要想在外网环境下也能够访问到,可以通过cpolar来实现【免费or付费】,不需要公网IP,也不需要进入到路由器,还不限制流量。......
  • Windows外网远程桌面连接【免费内网穿透】
    Windows系统自带的远程桌面连接,正常只能在局域网内使用,但对于出差在外,或者在家想要远程连接公司内网电脑的情况下,可以做内网穿透,映射3389端口到公网,生成公网地址来远程连接......
  • 搭建本地服务器,并免费内网穿透实现外网访问
    本篇教程主要将如何快速地搭建本地服务器,以及使用免费的内网穿透工具,实现外网访问内网服务器,将本地网站发布到外网可访问,方便进行微信公众号、小程序开发本地调试等。本篇......
  • 内网渗透-域内环境搭建
    一、前言想复习一下内网渗透,纠结好久到底使用vulustack直接启动环境来写文章,还是自己搭建环境,后来看反正最近没啥事情,自己搭建一个,正好复习一下,涉及到的漏洞环境之后的文......
  • PHP判断内网/外网IP
        工作中用到PHP来判断内外网IP,查找资料偶然发现已有现成的实现函数,cool!filter_var($ip,FILTER_VALIDATE_IP,FILTER_FLAG_NO_PRIV_RANGE|FILTER_FLAG_NO_RES_R......
  • 记录一次ipsec vpn隧道建立成功,内网不通的非常规问题排查过程
    问题描述ABC三地互相打通ipsecvpn,A和B、A和C无问题,B和C地有问题。问题为隧道建立成功,而双向内网不通,通过查看日志没有发现报错。问题分析步骤第一步遇到问题首先查看配置......
  • 数据穿透和雪崩
    缓存穿透和缓存失效的预防和解决缓存穿透:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的......
  • MSF内网信息收集
    一、msf需要生成一个paylaod,window下面生成一个exesudo./msfvenom-pwindows/x64/meterpreter/reverse_tcpLHOST=172.20.10.10LPORT=3333-fexe-oshell.exe......