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,或者是服务 ...
随机推荐
- 啃啃老菜:Spring IOC核心源码学习(一)
啃啃老菜:Spring IOC核心源码学习(一) 本文主要以spring ioc容器基本代码骨架为切入点,理解ioc容器的基本代码组件结构,各代码组件细节剖析将放在后面的学习文章里. 关于IOC容器 ...
- golang之sync包
介绍sync包中常用的方法, - sync:提供基本的同步原语(比如Mutex.RWMutex.Locker)和 工具类(Once.WaitGroup.Cond.Pool.Map) - sync/at ...
- elasticsearch之python操作
总结使用python对于elasticsearch的常用操作 安装 pip install elasticsearch 2. 连接 from elasticsearch import Elastics ...
- qnap nas 下的 nasconfig_fs.img.tgz 及相关的一点记录
QNAP NAS 已安装EntWare(先前的Optware已废弃,不适用),可以使用 opkg 命令安装软件包(如想利用arp命令查看局域网的IP地址及对应物理网卡地址,可使用opkg instal ...
- scikit-learn中的Pipeline:构建高效、可维护的机器学习流程
我们使用scikit-learn进行机器学习的模型训练时,用到的数据和算法参数会根据具体的情况相应调整变化, 但是,整个模型训练的流程其实大同小异,一般都是加载数据,数据预处理,特征选择,模型训练等几 ...
- 一比一还原axios源码(七)—— 取消功能
按照惯例,我们先来看下官方的例子: 你可以通过axios的CancelToken工厂函数,生成一个source,然后把这个对象作为参数传递给axios,最后,需要取消的时候调用source的cance ...
- TypeScript 总结
js 类型分为两种:基本数据类型和复杂数据类型 基本数据类型主要有:number.string.boolean.null.undefined.symbo(es6新增).BigInt(es10新增) t ...
- K8S deployment 重启的三种方法
一般重启deployment,常规操作是删掉对应的pod, 但如果有多个副本集的话,一个个删很麻烦.除了删除pod,还可以: 方案一: 加上环境变量kubectl patch deploy <d ...
- conda虚拟环境中设置环境变量
引言 使用conda创建虚拟环境就是为了方便管理,各个环境之间的模块是独立的.有时候我们在做项目的时候需要设置一下环境变量才方便实用,但是不想影响到其他的虚拟环境,因此不能再系统的环境变量里面设置. ...
- spring boot 启动原理解析
https://www.cnblogs.com/xiaoxi/p/7999885.html 我们开发任何一个Spring Boot项目,都会用到如下的启动类 1 @SpringBootApplicat ...