FRPS and FRPC

在经过了各种小骚蹄子(传统方案)的洗礼后,弱水三千,我终究只取了frp这一瓢饮

简介

什么是Frp

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

为什么使用 FRP ?

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。
  • 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

以上内容来自官方

怎么使用Frp实现内网穿透

搭建服务端

首先,你需要拥有一台具有公网IP的服务器或者VPS,然后使用任意ssh终端连接上你的主机。
wget https://raw.githubusercontent.com/MvsCode/frp-onekey/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install
然后,输入代码(感谢大佬提供的脚本),出现以下界面。

[图片上传失败...(image-4662c8-1704110284483)]

国内服务器选择1,国外服务器选择2或者直接enter。

然后其实一直按enter就行了
+------------------------------------------------------------+

Check your server setting, please wait...

+------------------------------------------------------------+
|   frps for Linux Server, Author Clang ,Mender MvsCode     |
|      A tool to auto-compile & install frps on Linux        |
+------------------------------------------------------------+


Please select frps download url:
[1].gitee
[2].github (default)
Enter your choice (1, 2 or exit. default [github]): 
-----------------------------------
       Your select: github  
-----------------------------------
Loading network version for frps, please wait...
FRPS_VER set to: 0.53.2
frps Latest release file frp_0.53.2_linux_arm64.tar.gz
Loading You Server IP, please wait...
You Server IP:104.28.211.190
————————————————————————————————————————————
     Please input your server setting:
————————————————————————————————————————————

Please input frps bind_port [1-65535](Default Server Port: 5443):
frps bind_port: 5443


Please input frps vhost_http_port [1-65535](Default : 80):80
frps vhost_http_port: 80


Please input frps vhost_https_port [1-65535](Default : 443):445
frps vhost_https_port: 445


Please input frps dashboard_port [1-65535](Default : 6443):
frps dashboard_port: 6443


Please input frps dashboard_user(Default : admin):
frps dashboard_user: admin


Please input frps dashboard_pwd(Default : JPaOPrCi):
frps dashboard_pwd: JPaOPrCi


Please input frps token(Default : S7al5RUf0oADvKvT):
frps token: S7al5RUf0oADvKvT


Please input frps subdomain_host(Default : 104.28.211.190):
frps subdomain_host: 104.28.211.190


Please input frps max_pool_count [1-200]
(Default : 50):
frps max_pool_count: 50

Please select log_level
1: info (default)
2: warn
3: error
4: debug
-------------------------
Enter your choice (1, 2, 3, 4 or exit. default [1]): 
log_level: info


Please input frps log_max_days [1-30]
(Default : 3 day):
frps log_max_days: 3

Please select log_file
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]): 
log_file: enable

Please select tcp_mux
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]): 
tcp_mux: true

Please select kcp support
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]): 
kcp support: true

============<span style="font-weight: bold;" class="mark"> Check your input </span>==========<span style="font-weight: bold;" class="mark">
You Server IP      : 104.28.211.191
Bind port          : 5443
kcp support        : true
vhost http port    : 88
vhost https port   : 445
Dashboard port     : 6443
Dashboard user     : admin
Dashboard password : JPaOPrCi
token              : S7al5RUf0oADvKvT
subdomain_host     : 104.28.211.190
tcp_mux            : true
Max Pool count     : 50
Log level          : info
Log max days       : 3
Log file           : enable
</span>============================================

Press any key to start...or Press Ctrl+c to cancel

以上为所有可能出现的所有界面,这里强调几个参数

Bind port是监听端口,对应客户端的服务端口
vhost http port 默认80不要修改
vhost https port 默认443不要修改
Dashboard port是web控制台的端口,如你的服务器IP为0.0.0.0,那么你可以通过0.0.0.0:端口号访问web管理界面
Dashboard user是web控制台的账号
Dashboard password是web控制台的密码
token是客户端连接服务端的密码

搭建客户端

由于客户端的系统千奇百怪,能搭建客户端的方式也不尽相同,就像如果你拥有群晖,那么使用矿神套件无疑是最简洁的方式,但在此处我们只讲述普适方法。

还是ssh连接到系统,然后......

抄代码,启动!
安装客户端
wget https://github.ioiox.com/stilleshan/frpc/raw/branch/master/frpc_linux_install.sh && chmod +x frpc_linux_install.sh && ./frpc_linux_install.sh
编辑配置
vim /usr/local/frp/frpc.ini
下面给出一个frpc的示例文件,包括了http,https,tcp隧道的配置
# frpc.ini 示例配置文件(带有HTTP、HTTPS和TCP隧道的配置)

[common]
# 通用配置

# frps 服务器地址
server_addr = your_frps_server_ip        #输入你的服务器IP
# frps 服务器端口
server_port = 7000                       #前文中的bind_port
# 通信密钥,与 frps 中设置的一致
token = your_token                       #前文中的token

# HTTP 配置
[web]
type = http
local_port = 80
custom_domains = your_custom_domain.com
http_user = your_http_user               #可以没有
http_pwd = your_http_password            #可以没有

# HTTPS 配置
[secure_web]
type = https
local_port = 443
custom_domains = your_secure_domain.com
http_user = your_https_user              #可以没有
http_pwd = your_https_password           #可以没有
# 证书文件路径
# ssl_cert = ./path/to/your/certificate.crt
# 证书密钥文件路径
# ssl_key = ./path/to/your/private_key.key

# TCP 隧道配置
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

# 更多的 TCP 隧道配置
# [custom_tcp]
# type = tcp
# local_ip = 127.0.0.1
# local_port = 8080
# remote_port = 6001

稍微哔哔两嘴,曾几何时,frpc.ini的配置一度是使用frp进行穿透的最大劝退因素,虽然整体配置不难,但对于新手小白来说可能还是有点卧槽的,但现在嘛......

来来来,chatgpt给我写个frpc.ini呗,我要巴拉巴拉巴拉.......

真香~

最后嘛,在客户端执行
systemctl restart frpc
穿透完成!

不是那么好用但是也有点用的webui

在讲搭建服务端的时候,我们曾提到过设置web管理界面的端口账号密码。

那么......这是个什么玩意儿呢?

[图片上传失败...(image-cb18c9-1704110284483)]

如图所示,这玩意展示了服务端的一些信息,而且,在proxies选项卡下还能查看每个隧道使用的具体流量,单从面板的角度来说倒是不错了。

但是嘛,相比nps家的管理面板,我也只能说这玩意能用了,毕竟存在几个明显的缺点

1.面板全英文,完全不支持中文

2.只能查看信息,无法在管理面板进行修改(这方面大力点赞nps)

本文原始发布地址blog.050905.xyz/index.php/archives/12/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,348评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,122评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,936评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,427评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,467评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,785评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,931评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,696评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,141评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,483评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,625评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,291评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,892评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,492评论 2 348

推荐阅读更多精彩内容

  • 前言 对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务是一个问题。 今天给大家介绍一款好用...
    China_mr001阅读 171评论 0 0
  • 1 场景介绍 一个网络请求一般是由客户端发起,服务器响应,而代理服务是这个网络请求的中介,其作用是将客户端的网络请...
    脸哥的知识阅读 759评论 0 1
  • frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。 目录...
    RabbitMask阅读 1,310评论 0 7
  • 0. 前言 在打进内网之后,我们要判断此时的流量是否出的去、进的来。在一些真实的网络环境中,网络中的主机彼此进行通...
    放羊的孩子阅读 1,779评论 0 0
  • 用 frp 做内网穿透 frp[https://github.com/fatedier/frp] 是一个专注于内网...
    Yobhel阅读 343评论 0 0