内网穿透之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
然后,输入代码(感谢大佬提供的脚本),出现以下界面。

QQ截图20240101185411

国内服务器选择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管理界面的端口账号密码。

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

​​

QQ截图20240101192627

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

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

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

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

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

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个示例的frpsfrpc的配置文件,其中包含了一些常用的配置项: **frps.ini (frps的配置文件)** ```ini [common] bind_addr = 0.0.0.0 bind_port = 7000 token = your_token dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin_pwd # 自定义域名配置 [custom_domains] your_domain = your_subdomain:your_port # HTTP穿透配置 [http_proxy] type = http privilege_token = your_privilege_token listen_port = 80 custom_domains = your_domain # TCP穿透配置 [tcp_proxy] type = tcp privilege_token = your_privilege_token listen_port = 6000 remote_port = 6000 # UDP穿透配置 [udp_proxy] type = udp privilege_token = your_privilege_token listen_port = 6001 remote_port = 6001 ``` **frpc.ini (frpc的配置文件)** ```ini [common] server_addr = your_frps_server_ip server_port = 7000 token = your_token # HTTP穿透配置 [http_proxy] type = http local_ip = 127.0.0.1 local_port = 8080 remote_port = your_remote_port # TCP穿透配置 [tcp_proxy] type = tcp local_ip = 127.0.0.1 local_port = 3000 remote_port = your_remote_port # UDP穿透配置 [udp_proxy] type = udp local_ip = 127.0.0.1 local_port = 5000 remote_port = your_remote_port ``` 请注意替换上述配置文件中的以下值: - `your_token`:用于验证frpsfrpc之间通信的令牌。 - `your_privilege_token`:用于授权特权操作的令牌。 - `your_domain`:你要绑定的自定义域名。 - `your_subdomain`:你要绑定的子域名。 - `your_port`:你要绑定的端口号。 - `your_frps_server_ip`:frps服务器的IP地址。 - `your_remote_port`:远程端口号,用于映射到本地服务。 这只是一个示例配置文件,你可以根据自己的需求进行调整和扩展。 希望对你有帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值