frp内网穿透试验

1.实验工具和平台



2.软件下载、安装



3.配置软件

frps.ini的配置

#[common]是不可分割的部分

[共同]

#必须包含IPv6的文字地址或主机名

#在方括号中,如“[:: 1]:80”,“[ipv6-host]:http”或“[ipv6-host%zone]:80”

bind_addr = 0.0.0.0

bind_port = 7000

#udp port帮助让udp孔穿透nat

bind_udp_port = 7001

#udp port用于kcp协议,它可以与'bind_port'相同

#如果未设置,则在frps中禁用kcp

kcp_bind_port = 7000

#指定哪个地址代理将侦听,默认值与bind_addr相同

#proxy_bind_addr = 127.0.0.1

#如果要支持虚拟主机,必须设置http端口进行监听(可选)

#注意:http端口和https端口可以与bind_port相同

vhost_http_port = 80

vhost_https_port = 443

#set dashboard_addr和dashboard_port查看frps的仪表板

#smsboard_addr的默认值与bind_addr相同

仅当设置了dashboard_port时,#dashboard才可用

dashboard_addr = 0.0.0.0

dashboard_port = 7500

#msmsboard用户和passwd用于基本身份验证保护,如果未设置,则默认值均为admin

dashboard_user = admin

dashboard_pwd = admin

#spamboard assets目录(仅适用于调试模式)

#assets_dir = ./static

#console或真正的logFile路径,如./frps.log

log_file = ./frps.log

#trace,debug,info,warn,error

log_level = info

log_max_days = 3

#auth令牌

token = 12345678

#heartbeat configure,不建议修改默认值

#hearbeat_timeout的默认值为90

#heartbeat_timeout = 90

#只允许frpc绑定你列出的端口,如果你没有设置,就不会有任何限制

allow_ports = 2000-3000,3001,3003,4000-50000

如果每个代理中的#pool_count超过最大值,则会更改为max_pool_count

max_pool_count = 5

#max ports可用于每个客户端,默认值为0表示无限制

max_ports_per_client = 0

#cognification_timeout表示frpc连接frps时的超时间隔(秒)

#iify authentication_timeout为零,时间未验证,默认为900s

authentication_timeout = 900

#if subdomain_host不为空,可以在frpc配置文件中键入http或https时设置子域

#子域名测试时,路由使用的主机是test.frps.com

subdomain_host = frps.com

#if如果使用tcp stream multiplexing,则默认为true

tcp_mux = true


frpc.ini

#[common]是不可分割的部分

[共同]

#必须包含IPv6的文字地址或主机名

#在方括号中,如“[:: 1]:80”,“[ipv6-host]:http”或“[ipv6-host%zone]:80”

server_addr = 0.0.0.0

server_port = 7000

#如果要通过http代理或socks5代理连接frps,可以在此处或在全局环境变量中设置http_proxy

#它仅在协议为tcp时有效

#http_proxy = http:// user:passwd@192.168.1.128:8080

#http_proxy = socks5:// user:passwd@192.168.1.128:1080

#console或真正的logFile路径,如./frpc.log

log_file = ./frpc.log

#trace,debug,info,warn,error

log_level = info

log_max_days = 3

#用于身份验证

token = 12345678

#设置管理地址,用于通过http api控制frpc的动作,如重新加载

admin_addr = 127.0.0.1

admin_port = 7400

admin_user = admin

admin_passwd = admin

#connections将提前建立,默认值为零

pool_count = 5

#if如果使用tcp stream multiplexing,默认为true,它必须与frps相同

tcp_mux = true

#您的代理名称将更改为{user}。{proxy}

user = your_name

#决定首次登录失败时退出程序,否则连续重新登录到frps

#default为true

login_fail_exit = true

#用于连接服务器的通信协议

#现在它支持tcp和kcp,默认是tcp

protocol = tcp

#指定一个dns服务器,因此frpc将使用它而不是默认值

#dn_server = 8.8.8.8

#您要开始的代理名称除以','

#default为空,表示所有代理

#start = ssh,dns

#heartbeat configure,不建议修改默认值

#hearbeat_interval的默认值为10,heartbeat_timeout为90

#heartbeat_interval = 30

#heartbeat_timeout = 90

#'ssh'是唯一的代理名称

#如果[common]部分中的用户不为空,则会更改为{user}。{proxy},例如'your_name.ssh'

[SSH]

#tcp | udp | http | https | stcp | xtcp,默认为tcp

type = tcp

local_ip = 127.0.0.1

local_port = 22

#true或false,如果为true,frps和frpc之间的消息将被加密,默认为false

use_encryption = false

#if如果为true,将压缩消息

use_compression = false

#remout端口通过frps监听

remote_port = 6001

#frps将为同一组中的代理加载平衡连接

group = test_group

#group应该具有相同的组密钥

group_key = 123456

[ssh_random]

type = tcp

local_ip = 127.0.0.1

local_port = 22

#if remote_port为0时,frps将为您分配一个随机端口

remote_port = 0

#如果要公开多个端口,请在节名称中添加“range:”前缀

#frpc将生成多个代理,例如'tcp_port_6010','tcp_port_6011'等。

[范围:TCP_PORT]

type = tcp

local_ip = 127.0.0.1

local_port = 6010-6020,6022,6024-6028

remote_port = 6010-6020,6022,6024-6028

use_encryption = false

use_compression = false

[DNS]

type = udp

local_ip = 114.114.114.114

local_port = 53

remote_port = 6002

use_encryption = false

use_compression = false

[范围:udp_port]

type = udp

local_ip = 127.0.0.1

local_port = 6010-6020

remote_port = 6010-6020

use_encryption = false

use_compression = false

#将您的域名解析为[server_addr],以便您可以使用http://web01.yourdomain.com浏览web01和http://web02.yourdomain.com来浏览web02

[WEB01]

type = http

local_ip = 127.0.0.1

local_port = 80

use_encryption = false

use_compression = true

#http用户名和密码是http协议的安全认证

#如果未设置,您可以在没有认证的情况下访问此custom_domains

http_user = admin

http_pwd = admin

#如果frps的域名是frps.com,那么您可以通过URL http://test.frps.com访问[web01]代理

subdomain = web01

custom_domains = web02.yourdomain.com

#locations仅适用于http类型

locations = /,/ pic

host_header_rewrite = example.com

带有前缀“header_”的#params将用于更新http请求标头

header_X-From-Where = frp

[web02]

type = https

local_ip = 127.0.0.1

local_port = 8000

use_encryption = false

use_compression = false

subdomain = web01

custom_domains = web02.yourdomain.com

[plugin_unix_domain_socket]

type = tcp

remote_port = 6003

#if如果定义了插件,local_ip和local_port就没用了

#lugin将处理从frps获得的连接

plugin = unix_domain_socket

#params前缀为“plugin_”,插件需要

plugin_unix_path = /var/run/docker.sock

[plugin_http_proxy]

type = tcp

remote_port = 6004

plugin = http_proxy

plugin_http_user = abc

plugin_http_passwd = abc

[plugin_socks5]

type = tcp

remote_port = 6005

plugin = socks5

plugin_user = abc

plugin_passwd = abc

[plugin_static_file]

type = tcp

remote_port = 6006

plugin = static_file

plugin_local_path = / var / www / blog

plugin_strip_prefix = static

plugin_http_user = abc

plugin_http_passwd = abc

[secret_tcp]

#如果类型是秘密tcp,则remote_port是无用的

#谁想要连接本地端口应该使用stcp代理部署另一个frpc,角色是访问者

type = stcp

#sk用于访问者的身份验证

sk = abcdefg

local_ip = 127.0.0.1

local_port = 22

use_encryption = false

use_compression = false

#pcpc的用户在stcp服务器和stcp访问者中应该相同

[secret_tcp_visitor]

#frpc角色访问者 - > frps - > frpc角色服务器

role = visitor

type = stcp

#您要访问的服务器名称

server_name = secret_tcp

sk = abcdefg

#将此地址连接到访问者stcp服务器

bind_addr = 127.0.0.1

bind_port = 9000

use_encryption = false

use_compression = false

[p2p_tcp]

type = xtcp

sk = abcdefg

local_ip = 127.0.0.1

local_port = 22

use_encryption = false

use_compression = false

[p2p_tcp_visitor]

role = visitor

type = xtcp

server_name = p2p_tcp

sk = abcdefg

bind_addr = 127.0.0.1

bind_port = 9001

use_encryption = false

use_compression = false


4.运行、测试



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

推荐阅读更多精彩内容