[运维] 内网穿透最佳实战-基于frp

序言: 几年前写了一篇全面的,但是涉及管制被删,最近发现身边不少朋友也在用这个(英雄所见略同),而且发现新版本的frp可以用来实现负载均衡了(而且是可以跨机房的),感觉很赞,所以打算重新写一篇关于它的文章,这篇文章只介绍frp这个工具的使用方法,不涉违法。
  1. 什么是内网穿透:如你在家里的电脑的ip地址是192.168.1.100, 有这个ip你是无法在公司通过这个局域网ip访问到家里的电脑的,内网穿透的任务就是让你可以在公司访问到家里的电脑
  2. 可以去github上去下载frp和阅读完整文档https://github.com/fatedier/frp, 本文比官方文档接地气一些,实践经验。
  3. frp 的工作原理
    在这里插入图片描述
    3.1. 在公网服务器上的服务器运行 frp的服务端frps, 这台公网服务器的ip得是可以直接访问的(假设这个ip是111.114.114.114)。
    3.2. 在内网电脑上运行frp的客户端frpc, 把内网的某ip( 假设这个ip是192.168.1.100)的某端口映(假设 22)射到公网服务器的某些端口上(假设10022)。
    3.3. 那么在非局域网访问111.114.114.114:10022和你在局域网访问192.168.1.100:80是等效的。
  4. 这一过程的服务端配置文件 frps.ini
[common]
# 配置服务端tcp服务端口
bind_port = 10000 
# 配置服务端udp服务端口
bind_udp_port = 10001
# 配置服务端kcp服务端口
kcp_bind_port = 10002
# 虚拟站点服务,不配置他我为apache2 配置的多个v-host会指向同一个v-host
vhost_http_port = 10080
# 服务密码
token = sfmam23tmmmfeti4
# 日志文件
log_file = ./frps.log
# 日志保存天数
log_max_days = 7
# 日志输出等级 trace, debug, info, warn, error
log_level = info
# 服务网页可视化面板配置
dashboard_addr = 0.0.0.0
dashboard_port = 10003
dashboard_user = admin
dashboard_pwd = admin
# 允许被用来做反向代理的端口
allow_ports = 10000-50000
# 连接池
max_pool_count = 15
# 每个客户端允许使用的端口数,0代表不限制
max_ports_per_client = 0

  1. 启动服务端的方案,我们一般需其后台运行
    5.1. Mac/Linux/Unix (./frps -c frps.ini &)
    5.2. Mac/Linux/Unix 关闭ps -ef |grep frps |awk '{print $2}'|xargs kill -9 (找到进行id,kill掉即可)
    5.3. Windows 后台运行需要写个脚本 start_frpc.bat
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
.\frps.exe -c frps.ini
  1. 客户端配置frpc.ini
[common]
# 公网服务器ip
server_addr = 111.114.114.114
# frps端配置的服务端口
server_port = 10001
# 服务密码
token = sfmam23tmmmfeti4
# 日志
log_file= log.txt
##### 下面是每个端口映射,[名称]在整个系统中是不能重复的 ########################
# 网站1
[my_pc_80]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 10080

# 网站二
[my_pc_vhost_frontend]
type=tcp
local_ip = local.frontend.funshop.io
local_port=80
remote_port=10081

# tcp一
[my_pc_ssh]
type=tcp
local_ip = 192.168.1.100
local_port=22
remote_port=10022
  1. 启动客户端,和启动服务端类似
    6.1. Mac/Linux/Unix (./frpc -c frpc.ini &)
    6.2. Mac/Linux/Unix 关闭ps -ef |grep frpc |awk '{print $2}'|xargs kill -9 (找到进行id,kill掉即可)
    6.3. 对于windows系统
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
.\frpc.exe -c frpc.ini
  1. 浏览器访问111.114.114.114:10003可以查看连接情况。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章