Frp内网穿透(一)
ftp简介
frp
- frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https协议。
- 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
- 对于 http, https服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
- 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
软件包下载地址
https://github.com/fatedier/frp/releases
服务器端
tar xzvf frp_0.21.0_linux_amd64.tar.gz -C /usr/local/
cd /usr/local/
mv frp_0.21.0_linux_amd64/ frp
cd frp
vim frpc.ini
服务器端配置
[common]
bind_port = 7000
dashboard_port = 10001
token = *************
dashboard_user = admin
dashboard_pwd = password
vhost_http_port = 10002
vhost_https_port = 10003
bind_addr和bind_port是服务启动监听的端口,这里addr配置成0.0.0.0默认是本机。
dashboard_port:web访问的端口
dashboard_user:web访问的用户名
dashboard_pwd:web访问的密码
max_pool_count:最多能有多少个frpc链接上来
服务器端启动
nohup /usr/local/frp/frps -c /usr/local/frp/frps.ini >> logout.log 2>&1 & //启动
客户端配置
[common]
server_addr = xxxxxx
server_port = 10010
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[DSM]
type = tcp
local_ip = 群晖在局域网中的 IP 地址
local_port = 5000
remote_port = 7002
[web]
type = tcp
local_ip = 内网服务器ip
local_port = 80
custom_domains = 外网服务器ip
server_addr:上面配置的服务器的IP地址。
server_port:上面配置服务器的端口,就是bind_port的值。
type = tcp:连接类型是tcp。
local_ip:本地IP,这个配置成127.0.0.1即可。
local_port:本地端口是22,ssh默认端口,轻易不要改变。
remote_port:远端端口6000,这个比较重要,这个端口其实就是我们在任何地方访问这个设备的端口。
客户端启动
nohup /usr/local/frp/frpc -c /usr/local/frp/frpc.ini >> logout.log 2>&1 & //启动
centos7客户端服务器脚本
vi /usr/lib/systemd/system/frps.server
客户端需要更改红色字体对应路径
[Unit]
Description=Frp Server Service
After=network.target [Service]
Type=simple
User=root
# 失败后5秒重启
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini [Install]
WantedBy=multi-user.target
启动并设置开机启动
daemon-reload && systemctl start frp.service && systemctl enable frp.service
centos6客户端/服务器端脚本
#!/bin/bash
#auther by wangxp
PWD=`pwd`
#客户端要把下面三个红色字体变量的frps都替换成frpc
EXE_FRP=${PWD}/frps
CONFIG_FRP=${PWD}/frps.ini
PROG='frps'
function getPid {
PID=`ps -ef | grep $PWD | grep -v grep | awk '{print $2}'|awk 'NR==1'`
}
getPid
case $1 in
start)
echo "---PID---$PID"
if [ ! $PID ];then
nohup $EXE_FRP -c $CONFIG_FRP>> output.log 2>&1 &
sleep 0.5
getPid
echo -e "$PROG is \033[32mActive\033[0m, PID = $PID"
else
echo "$PROG is exist, PID = $PID"
fi
;;
stop)
if [ $PID ];then
kill -15 $PID >> output.log 2>&1
sleep 0.5
getPid
echo -e "$PROG is \033[31mDead\033[0m"
else
echo "$PROG is not exist"
fi
;;
restart)
$0 start
sleep 1
$0 stop
;;
*)
echo "Usage:{$0 start|stop|restart}"
;;
esac
exit 0
其他应用
服务器心跳检测微信报警(已上传wechat微信告警程序)
vim hearbeatAlert.sh
#!/bin/bash
TEST=`tail -n 1 /usr/local/frp/output.log | grep "request error"`
TIME=`date '+%F %T'`
if [ ! -z "$TEST" ]; then /usr/local/wechatapp/wechat \
--msg="$TIME 检测到zabbix服务器访问请求错误,请检查网络和服务器配置!" \
--corpid=ww8d233e07cc2f44d2 \
--corpsecret=pMWGGbnU3NVmOVBH0mEpiqjBhxYzgQSHS5WqO6e710c \
--user=BuJiDao \
--agentid=1000002 >/dev/null 2>&1\ fi
exit 0
定时报警
crontab -e
* * * * * /usr/local/wechatapp/hearbeatAlert.sh
windows开机启动frp
Frp内网穿透(一)的更多相关文章
- frp内网 穿透映射使内网svn可外网访问
起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...
- 树莓派FRP内网穿透及自启动
内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...
- Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 关键词: frp内网 ...
- frp内网穿透(已验证)
# 云服务器frp内网穿透教程 软件源码在https://github.com/fatedier/frp/releases上,根据系统类型,按需下载 教程术语描述 > A 是有固定IP的云服务器 ...
- frp 内网穿透访问内网Web服务
ps:最近想要通过域名(公网)访问或者测试在本地搭建的 web 服务(不想在公网IP服务器上再部署个服务,也不想通过teamview等工具远程卡到爆!), 由于本地机器没有公网 IP,无法将域名解析到 ...
- frp内网穿透学习
前言 因为自己在内网,但是目标站在外网,这时候可以通过内网穿透工具,将接收到的请求转发到内网,实现在内网的msf可以控制外网的靶机. 也看了一些Ngrok,花生壳的,发现Ngrok.cc这个看文章说有 ...
- [svc]frp内网穿透
什么是穿透 可以任意暴漏内网任何服务,加入你在你的办公网络有台pc,可以上网就可以了, 你可以在你电脑上安装各类服务器, 暴漏如80 22等端口, 注意 这可以暴漏到公网哦, 在出口不做任何nat情况 ...
- frp内网穿透
原理 frp(fast reverse proxy)分为Server端和Client端,Server端安装在带有公网IP的服务器上,Client安装在内网环境但能上网的普通PC中. 流程: Serve ...
- frp内网穿透实战
什么是frp frp是一个使用非常简单的开源内网穿透软件,代码地址:https://github.com/fatedier/frp ,使用条前提你需要有一台公网服务器,大致原理是:公网服务器监听某个端 ...
- 五、frp内网穿透客户端frpc.ini各配置参数详解
[必须]标识头[common]是不可或缺的部分 [必须]frps服务端IPserver_addr = 0.0.0.00.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务 ...
随机推荐
- Redis【1】- 如何阅读 Redis源码
1 Redis 的简介 Redis 实际上是简称,全称为 Remote Dictionary Server (远程字典服务器),由 Salvatore Sanfilippo 写的高性能 key-val ...
- 用VuePress在GitHub Pages上搭建博客
请先点击链接RobinDevNotes,体验用VuePress搭建博客的效果(logo还没有合适的替换),目前部署在GitHub Pages上,国内访问速度还可以,再阅读本文感受来龙去脉和搭建过程. ...
- datagridview点击列头对当前列进行排序的功能无效
DataGridView 的默认行为是支持通过单击列头对列进行排序,但在以下情况下可能会取消该功能或无法使用: 1. 绑定的数据源不支持排序 如果 DataGridView 的数据源是绑定到一个不支持 ...
- 手撕vector
Myclass.h #pragma once #include<iostream> #include<Windows.h> #define SUCCESS 1 // 成功 #d ...
- 不错的AI项目集合
最近收集了一些不错的AI项目. AutoGPT:AutoGPT 的愿景是让每个人都可以使用和构建无障碍 AI.我们的使命是提供工具,以便您可以专注于重要的事情. Stable Diffusion we ...
- echarts 图表设置默认选中
echarts:https://echarts.apache.org/zh/api.html#events.legendselected tfjy1997:https://blog.csdn.net/ ...
- .NET Aspire Apps 集成测试
原文:https://fiodar.substack.com/p/integration-testing-dotnet-aspire-apps 对于软件开发来说,拥有自动化的覆盖测试非常重要.尽管手工 ...
- 【Rive】Android与Rive交互
1 Android与Rive交互的常用接口 1.1 RiveAnimationView参数 <app.rive.runtime.kotlin.RiveAnimationView android: ...
- 2024年1月Java项目开发指南5:controller、service、mapper
准备工作 你知道什么是JSON吗? JSON是什么? 格式是什么? 有什么用? 有什么优点? 有什么缺点? 请自己百度探索一下,对JSON做了个了解,如果你不知道什么是JSON的话,知道就免了,直接下 ...
- Timestamp和LocalDateTime 互转
jdk:1.81.Timestamp 转 LocalDateTime Timestamp time = Timestamp.from(Instant.now());LocalDateTime loca ...