群晖nas通过frp穿透端口转发教程

FRP服务端一键安装脚本

一键脚本介绍

FRP是一个使用go语言编写的反向代理应用,可以帮助您轻松的实现内网穿透,支持TCP\UDP\HTTP\HTTPS等协议类型。这里的安装脚本可以帮助您快速的部署FRP服务端,并配置好开机自动启动。

 

操作系统需求

安装干净的 Ubuntu 14/16 或 CentOS 6/7 或 Debian 6/7/8 系统,并做好镜像 (如果安装失败需要还原到镜像),并切换为root用户。

 

开始安装脚本

wget –no-check-certificate https://tutu.bid/bash/frps.sh -O ./frps.sh && chmod 700 ./frps.sh && ./frps.sh install

此脚本安装服务端版本为 v0.20.0

客户端  frpc.ini配置

[common]
server_addr = 你的ip
server_port = 5443
token = 你的密码

[HTTP_mode_443]
privilege_mode = true
type = https
local_ip = 127.0.0.1
local_port = 5001
custom_domains = 你的域名或者ip

[HTTP_mode_80]
privilege_mode = true
type = http
local_ip = 127.0.0.1
local_port = 5000
custom_domains = 你的域名或者ip

[tcp_端口]
type = tcp
local_ip = 你的内网ip
local_port = 端口
remote_port = 端口

基本配置(必须)

# 下面这句开头必须要有,表示配置的开始 
[common] 
# frp 服务端地址,可以填ip或者域名 server_addr = 0.0.0.0 
# frp 服务端端口,即填写服务端配置中的 bind_port server_port = 7000 
# 填写 frp 服务端密码 token = 12345678

TCP/UDP

这里以转发 ssh 为例

# 自定义一个配置名称,格式为“[名称]”,放在开头
[ssh]
# 连接类型,填 tcp 或 udp
type = tcp

# 本地ip,填你需要转发到的目的ip
# 如果是转发到frp客户端所在本机(比如路由器)则填 127.0.0.1
# 否则填对应机器的内网ip
local_ip = 127.0.0.1
# 需要转发到的端口,比如 ssh 端口是 22
local_port = 22

# 是否加密客户端与服务端之间的通信,默认是 false
use_encryption = false
# 是否压缩客户端与服务端之间的通信,默认是 false
# 压缩可以节省流量,但需要消耗 CPU 资源
# 加密自然也会消耗 CPU 资源,但是不大
use_compression = false

# frp 服务端的远程监听端口,即你访问服务端的 remote_port 就相当于访问
# 客户端的 local_port,如果填0则会随机分配一个端口
remote_port = 6001

HTTP(S)

以转发路由器设置页面为例

# 自定义一个配置名称,格式为“[名称]”,放在开头
[router-web]
# 连接类型,填 http 或 https
type = http

local_ip = 127.0.0.1
local_port = 80

# http 可以考虑加密和压缩一下
use_encryption = true
use_compression = true

# 自定义访问网站的用户名和密码,如果不定义的话谁都可以访问,会不安全
# 有些路由器如果从内部访问web是不需要用户名密码的,因此需要在这里加一层密码保护
# 如果你发现不加这个密码保护,路由器配置页面原本的用户认证能正常生效的话,可以不加
http_user = admin
http_pwd = admin

# 还记得我们在服务端配置的 subdomain_host = example.com 吗
# 假设这里我们填 web01,那么你将 web01.example.com 解析到服务端ip后
# 你就可以使用 域名:端口 来访问你的 http 了
# 这个域名的作用是用来区分不同的 http,因为你可以配置多个这样的配置
subdomain = web01

# 自定义域名,这个不同于 subdomain,你可以设置与 subdomain_host 无关的其他域名
# subdomain 与 custom_domains 中至少有一个必须要设置
custom_domains = web02.yourdomain.com

# 匹配路径,可以设置多个,用逗号分隔,比如你设置 locations 为以下这个,
# 那么所有 http://xxx/abc 和 http://xxx/def 都会被转发到 http://xxx/
# 如果不需要这个功能可以不写这项,就直接该怎么访问就怎么访问
locations = /abc,/def

# 重写 host header,相当于反向代理中的“发送域名”
# 如果设置了,转发 http 时,请求中的 host 会被替换成这个
# 一般情况下不需要用到这个,可以不写这项
host_header_rewrite = dev.yourdomain.com

TCP/UDP 范围转发

# 自定义一个配置名称,格式为“[range:名称]”,放在开头
[range:multi-port]

type = tcp
local_ip = 127.0.0.1
use_encryption = false
use_compression = false

# 本地端口和远程端口可以指定多个范围,如下格式,且范围之间必须一一对应
local_port = 6010-6020,6022,6024-6028
remote_port = 16010-16020,16022,16024-16028

合并配置

将你决定要使用的配置合起来,然后填到路由器的 frp 配置脚本中

如果你是在 linux 上运行,则写入到frpc.ini中,然后仿照运行服务端的方式来运行客户端

比如将以上示例配置合并之后,看起来应该是这个样子

[common]
server_addr = 0.0.0.0
server_port = 7000
token = 12345678

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
use_encryption = false
use_compression = false
remote_port = 6001

[router-web]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = true
use_compression = true
http_user = admin
http_pwd = admin
subdomain = web01
custom_domains = web02.yourdomain.com
locations = /abc,/def
host_header_rewrite = dev.yourdomain.com

[range:multi-port]
type = tcp
local_ip = 127.0.0.1
use_encryption = false
use_compression = false
local_port = 6010-6020,6022,6024-6028
remote_port = 16010-16020,16022,16024-16028

Be the first to comment

Leave a Reply

Your email address will not be published.


*