阿里云centos7 frp内网穿透
frp介绍
frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。frp 项目官网是 https://github.com/fatedier/frp,
frp工作原理
服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
服务端fork新的进程监听客户端指定的端口;
外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
简单来说就是一台没有公网ip的服务器,利用有公网ip的服务器的ip。让这两台设备连接。然后把这两台看成是一台就行了。然后这个frp就相当于把它俩连接起来的工具。
可以先了解一下其他的知识,比如正向代理与反向代理。这篇文章其实讲的挺好的。vpn就使用了正向代理,frp中使用了反向代理。
2 配置教程
想要配置frp穿透,首先必须先要有一台有公网ip的服务器,主要得有公网ip(即:可以外网访问)的服务器。如果没有,接下来的教程就不用看了。配置教程主要分为两个部分,一是服务器端(外网服务器)的配置;二是客户端(内网服务器)配置。
1、下载frp
https://github.com/fatedier/frp/releases
frp_0.38.0_linux_amd64.tar.gz是64位系统,frp_0.38.0_linux_386.tar.gz是32位系统,根据自已的云服务器去下载对应的frp文件。
2.解压压缩文件:
tar -zxvf frp_0.38.0_linux_amd64.tar.gz
mv frp_0.38.0_linux_amd64 frp
mv frp /usr/local/
cd /usr/local/frp
frpc, frpc.ini , 因为包含c结尾代表client,是客户端所使用的,所以服务器端用不到可以删除掉,也可以不删除,没有影响。
然后配置frps.ini文件。
使用vim frps.ini修改文件
如下所示
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
#token = xd123456abc # 这个token之后在客户端会用到
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = xdadmin
dashboard_pwd = xdadmin
#vhost_http_port = 6001 # 访问6001端口,映射到内网web服务
#vhost_https_port = 10443
#enable_prometheus = true
# frp日志配置
log_file = /usr/local/frp/log/frps.log
log_level = info
log_max_days = 3
dashboard_port是服务端仪表板的端口。开启后可使用ip+dashboard_port访问。
token是另外一个没有公网ip的电脑连接的密码。
dashboard_user和dashboard_pwd表示打开仪表板页面登录的用户名和密码.
bind_port表示用于客户端和服务端连接的端口.也就是没有ip电脑所要连接的端口.它俩绑在一起的绳子.
使用守护程序systemctl
在/lib/systemd/system文件夹下创建frps.service
vim frps.service
输入如下内容,保存退出。
[Unit]
Description=frp service
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=#frp绝对路径#/frps -c #frp绝对路径#/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
启动服务
systemctl start frps
服务开机自启动
systemctl enable frps
服务器上最终的配置
[Unit]
Description=frp service
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
验证服务端是否启动成功
访问:http://服务器IP:后台管理端口” ,输入用户名和密码可以查看连接状态
如:http://62.244.114.4:7500/,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd
登录之后界面如下:
如果上述步骤没有问题,则说明frp的服务端配置成功了,也就意味着内网穿透你已经成功了一半!!!
但是要提前到你买的官网打开这个可以访问的端口(我的是阿里云的服务器)(如何开放端口百度查询即可)如图:我的已经添加7000端口和3389端口
阿里云开放端口,在云服务器--->ECS安全组--->配置规则
还需要iptables或者fillwalld放开相关的端口
iptables
vim /etc/sysconfig/iptables
#自定义frp内网穿透端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7000 -j ACCEPT
#frp管理后台端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7500 -j ACCEPT
重启 iptables 防火墙服务
# systemctl restart iptables.service
fillwalld
那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
测试地址:http://182.92.232.14:7500/static/#/
客户端相关配置(也就是另外一台内网的服务器)
解压压缩文件:
tar -zxvf frp_0.38.0_linux_amd64.tar.gz
mv frp_0.38.0_linux_amd64 frp
mv frp /usr/local/
cd /usr/local/frp
因为是客户端所以编辑包含c的文件
然后配置frpc.ini文件。
使用vim frpc.ini修改文件
如下所示
[common]
server_addr = 公网ip
server_port = 7000
[ssh]
type = tcp
local_ip = 192.168.1.88
local_port = 22
remote_port = 6000
[web1]
type = tcp
local_ip=192.168.1.88 #这个地方是没有公网ip的服务器地址
local_port = 80 #这个地方是没有公网ip的服务器部署的服务的端口
remote_port=8080 #绑定的远程有公网ip的服务器的端口
# frp日志配置
log_file = /usr/local/frp/log/frpc.log
log_level = info
log_max_days = 3
客户端配置
[common]
server_addr = 公网ip
server_port = 7000
[ssh]
type = tcp
local_ip=192.168.1.88
local_port = 22
remote_port=6000
查看frpc.ini配置文件(C代表客户端),在命令窗口直接输入frpc.ini即可打开。server_addr = 114.119.110.120是你买的服务器的公网IP要对应上。
server_port = 7000是监听端口与服务器的bind_port对应一致。local_port = 22,remote_port = 6000是在买服务器的官网开通的可访问端口。
最终配置
[common]
server_addr =182.92.232.14
server_port = 7000
[ssh]
type = tcp
local_ip = 192.168.1.88
local_port = 22
remote_port = 6000
[web]
type = tcp
local_ip = 192.168.1.88
#访问本地80web服务
local_port = 80
#必须已经备案
custom_domains = www.ddzhl.com
# frp日志配置
log_file = /usr/local/frp/log/frpc.log
log_level = info
log_max_days = 3
注意:代理端口好像限制最大8888(remote_port)
使用守护程序systemctl
在/lib/systemd/system文件夹下创建frpc.service
vim frpc.service
输入如下内容,保存退出。
[Unit]
Description=frp service
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
启动服务
systemctl start frpc
服务开机自启动
systemctl enable frpc
最终实验的最终版本
服务端部分
vim frps.ini
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
authentication_method = token
# 授权码,请改成更复杂的
token = xd123456abc
# 这个token之后在客户端会用到
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = xdadmin
dashboard_pwd = xdadmin
# 访问10080端口,映射到内网web服务
#vhost_http_port = 10080
#vhost_https_port = 10443
#enable_prometheus = true
# frp日志配置
log_file = /usr/local/frp/log/frps.log
log_level = info
log_max_days = 3
客户端部分
vim frpc.ini
[common]
server_addr = 182.92.232.14
server_port = 7000
authentication_method = token
token = xd123456abc
[ssh]
type = tcp
local_ip = 192.168.1.88
local_port = 22
remote_port = 6000
[web]
type = tcp
local_ip = 192.168.1.88
local_port = 80
#访问本地80web服务
remote_port = 8080
custom_domains = www.ddzhl.com
#必须已经备案
# frp日志配置
log_file = /usr/local/frp/log/frpc.log
log_level = info
log_max_days = 3
注意需要阿里云和防火墙开放需要的哪些端口,不然还是没有办法访问的
访问web服务的时候
type=tcp
如果是type=http的话,访问不了
测试访问
现在访问服务器IP:访问内部的ssh端口 就可以访问内网的设备
比如我现在要访问我内网的设备就访问:182.92.232.14:6000
连接成功
frp如何加token?
在 frps.ini 和 frpc.ini中均添加
authentication_method = token
token = changeit
阿里云centos7 frp内网穿透相关推荐
- 【保姆级】阿里云服务器frp内网穿透教程
背景1: 去年买了一台阿里云服务器,轻量应用服务器,2核4G.个人比较喜欢嵌入式,开发板也不少,但是开发板连接路由器后内次都要看一下IP然后去连接(虽然可以在路由器上控设置固定IP),然后最近突发奇想 ...
- 谷粒商城P139集——云服务器frp内网穿透+nginx
1.腾讯云购买域名并备案以及解析 我注册的域名是第一年14元的 (1)购买域名并备案 (2)域名解析 测试:如域名为gulimall.com 则在浏览器中输入gulimall.com:9200(前提是 ...
- centos7 frp内网穿透
git下载地址 中文文档参考 这里需要nginx 配置https证书, frp服务端,frp客户端, 阿里centos7, 子级域名. client -->(https) nginx --> ...
- 【外网访问学校服务器】阿里云服务器+frp+内网服务器
寒假将至,为了在家能继续用学校的服务器,通过云服务器的公网ip作为桥梁进行内网渗透,来访问学校的服务器. 设备:服务端(阿里云轻量服务器) 客户端( Ubuntu 20.04.1) 阿里云先设置密码 ...
- 阿里云服务器怎么样可以实现 frp 内网穿透
更多精彩内容请访问我的新博客站点 前言 前几天在一台具有公网IP的 vultr 云服务器上实现了 frp 内网穿透(参考链接),可以从寝室 ssh 登录到教研室的服务器,但是由于 vultr 的云服务 ...
- 阿里云服务器实现 frp 内网穿透
更多精彩内容请访问我的新博客站点 前言 前几天在一台具有公网IP的 vultr 云服务器上实现了 frp 内网穿透(参考链接),可以从寝室 ssh 登录到教研室的服务器,但是由于 vultr 的云服务 ...
- 阿里云轻量应用服务器配置frp内网穿透通过Mac远控Win10主机配置指南
tags: Linux Server Tips Config 写在前面 之前一直是用向日葵或者todesk进行远程访问主机的, 虽然很方便, 却也存在有广告, 需要登录, 延时高等问题. 在此之前也有 ...
- FRP内网穿透映射本地内网80端口到云服务器
FRP内网穿透映射本地内网80端口到云服务器 如题,我的配置中本地服务器和云服务器都为ubuntu20.04,但CentOS同样适用. PS:怎么把网页部署到本地80端口请找别的教程,本文重点在内网穿 ...
- 花生壳 || FRP实现玩客云、树莓派...内网穿透,外网访问
一:内外网穿透简介 内网穿透也叫做内网映射,也叫"NAT穿透".就是让外网能访问你的内网:把自己的内网(主机)当成服务器,让外网能访问.下面是我用过的两种内网穿透.个人认为FRP更 ...
最新文章
- static在内存层面的作用_「C++ Primer plus 心得」9.内存模型和名称空间
- AtCoder3950 [AGC022E] Median Replace(DFA + dp)
- editorloop 占用_速度控制 部分重复 语言学习软件 Loopman
- Python PIL(图像处理库)使用方法
- C++新特性探究(一):nullptr
- linux apache smtp,Linux 使用msmtp 发送邮件
- python按照图片命名复制到不同文件夹下
- 数据传递-------@ModelAttribute
- Hibernate二级缓存以及ehcache的搭建配置
- vs201x下正则表达式过滤中文
- 转【测试基础】测试计划如何编写
- piaget读法_这些手表品牌原来是这么念的!
- JL 杰理 AC692N系列TWS 蓝牙音箱 开发
- FPGA的速度等级(speed grade)
- ant-design-vue导航菜单a-menu的详细使用
- 《Thinking in Java》Fourth Edition中文版笔记
- 阿里云国际站:阿里云启用第三座日本数据中心,加快海外市场扩展
- Thread.setDaemon详解
- RPG Maker MV-去掉开头动画
- nginx 异常长连接快速断开