frp内网穿透试验

2018-07-09  本文已影响0人  大飞歌

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.运行、测试


上一篇下一篇

猜你喜欢

热点阅读