ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FRP内网穿透之场景实战

2021-07-20 18:33:33  阅读:657  来源: 互联网

标签:systemctl frps local 穿透 FRP ini frpc 内网 usr


目录

场景说明

内网服务器的业务应用系统,需要通过外网域名访问;同时为了后期内网服务器运维方便,需要能够通过ssh连接到内网服务器,方便进行后台管理;
目前拥有资源:
1、云服务器A,有公网IP,安装linux环境;
2、内网服务器B,无公网IP,安装linux环境,并部署业务应用系统;
3、域名(yourdomain.com),设置二级域名(myerp.yourdomain.com)解析到公网IP;

云服务器端

一、安装frps

1、上传frp_0.33.0_linux_amd64.tar.gz文件到服务器/opt目录(可根据实际选择其他目录)下,并解压文件到当前目录;

tar -xf frp_0.33.0_linux_amd64.tar.gz

解压后的frp文件
2、移动解压出的frp_0.33.0_linux_amd64目录到/usr/local目录下,并改名为frps,切换到/usr/local/frps目录下;

mv frp_0.33.0_linux_amd64 /usr/local/frps
cd /usr/local/frps

3、删除frp_0.33.0_linux_amd64目录中的frpc开头的文件(可选操作);

rm frpc*
rm:是否删除普通文件 "frpc"?y
rm:是否删除普通文件 "frpc_full.ini"?y
rm:是否删除普通文件 "frpc.ini"?y

4、关键步骤:配置frps.ini文件内容;
为了保险起见,先备份原frps.ini文件;
然后再修改frps.ini文件内容;详细配置见下面代码内容,如果对配置内容有不理解的地方,可以参考之前整理的关于配置的详细说明文章:内网穿透工具FRP配置文件详解

cp frps.ini frps.ini.bak	#备份原frps.ini配置文件
vi frps.ini					#编辑frps.ini配置文件
cat frps.ini				#查看frps.ini配置内容
[common]
bind_port = 7000
token = 12345678900
vhost_http_port = 80
subdomain_host= yourdomain.com

5、配置好frps.ini文件后,配置开机自动启动;
复制/usr/local/frps/systemd/frps.service文件到/etc/systemd/system/目录下,并修改文件内容,这里面的其他参数都可以保持默认,只需要修改ExecStart参数为实际安装frps的目录即可;

cp /usr/local/frps/systemd/frps.service  /etc/systemd/system/
# 原frps.service内容如下:
cat /etc/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy=multi-user.target
# 修改frps.service配置内容
vi /etc/systemd/system/frps.service
# 修改后frps.service配置内容如下:
cat /etc/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frps/frps -c /usr/local/frps/frps.ini

[Install]
WantedBy=multi-user.target

# 刷新systemctl服务列表
systemctl daemon-reload
#设置开机自启动
systemctl enable frps

#以下暂时不用操作,只需要知道命令格式即可
#关闭自启动
systemctl disable frps
#启动frps服务
systemctl start frps
#查看frps服务状态
systemctl status frps
#停止frps服务
systemctl stop frps

二、配置服务器安全环境

2.1、服务器防火墙开启80、7000、6022端口

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=6022/tcp
firewall-cmd --permanent --zone=public --add-port=7000/tcp
#重载防火墙
firewall-cmd --reload
#查看开启端口信息
firewall-cmd --list-port

2.2、如果是云服务器,请配置云服务器的安全组规则
云服务器安全组规则配置示例

内网客户机(内网服务器)端

为了与云服务器区别,统称内网客户机服务器为内网机器。

一、安装frpc

操作步骤与云服务器端类似,区别在于frpc.ini的配置。
1、上传frp_0.33.0_linux_amd64.tar.gz文件到内网机器中,并解压到/usr/local/目录下,修改目录名称为frpc;

tar -xf frp_0.33.0_linux_amd64.tar.gz -C /usr/local/
cd /usr/local/
mv frp_0.33.0_linux_amd64 frpc
cd frpc

2、删除frpc目录中frps开头的文件(可选操作)

rm frps*
rm:是否删除普通文件 "frps"?y
rm:是否删除普通文件 "frps_full.ini"?y
rm:是否删除普通文件 "frps.ini"?y

3、关键步骤:配置frpc.ini文件内容;
为了保险起见,先备份原frpc.ini文件;
然后再修改frpc.ini文件内容;详细配置见下面代码内容,如果对配置内容有不理解的地方,可以参考之前整理的关于配置的详细说明文章:内网穿透工具FRP配置文件详解

cp frpc.ini frpc.ini.bak	#备份原frpc.ini配置文件
vi frpc.ini					#编辑frpc.ini配置文件
cat frpc.ini				#查看frpc.ini配置内容
[common]
#此地址是之前记录的一直尝试攻击的地址,不要乱引用
server_addr = 190.48.116.129
server_port = 7000
token = 12345678900

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6022

[web01]
type = http
local_ip = 127.0.0.1
# 内网web服务的端口号
local_port = 80
subdomain = myerp

3、配置好frpc.ini文件后,配置开机自动启动;
复制/usr/local/frpc/systemd/frpc.service文件到/etc/systemd/system/目录下,并修改文件内容,这里面的其他参数都可以保持默认,只需要修改ExecStart参数为实际安装frpc的目录即可;

cp /usr/local/frpc/systemd/frpc.service  /etc/systemd/system/
# 原frpc.service内容如下:
cat /etc/systemd/system/frpc.service
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini

[Install]
WantedBy=multi-user.target
# 修改frpc.service配置内容
vi /etc/systemd/system/frpc.service
# 修改后frpc.service配置内容如下:
cat /etc/systemd/system/frpc.service
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frpc/frpc -c /usr/local/frpc/frpc.ini

[Install]
WantedBy=multi-user.target

# 刷新systemctl服务列表
systemctl daemon-reload
#设置开机自启动
systemctl enable frpc

#以下暂时不用操作,只需要知道命令格式即可
#关闭自启动
systemctl disable frpc
#启动frps服务
systemctl start frpc
#查看frps服务状态
systemctl status frpc
#停止frps服务
systemctl stop frpc

二、配置内网机器安全环境和应用环境

2.1、内网机器开启80、22端口(22端口默认是开启的)

firewall-cmd --permanent --zone=public --add-port=80/tcp
#重载防火墙
firewall-cmd --reload
#查看开启端口信息
firewall-cmd --list-port

2.2、启动内网机器的业务应用系统

测试效果

frp服务检查

1、直接启动方式
云服务器端

cd /usr/local/frps
./frps -c ./frps.ini

内网机器端

cd /usr/local/frpc
./frpc -c ./frpc.ini

分别在云服务器端和内网机器端执行以上命令后,控制台输出没有出现错误信息,即表示连接成功。

2、后台启动方式

#云服务器端
nohup ./frps -c ./frps.ini &

#内网机器端
nohup ./frpc -c ./frpc.ini &

这种启动方式会在当前目录输出nohup.out日志文件,记录连接成功或者失败信息。可使用tail -f nohup.out查看日志内容。
3、systemctl方式启动
通过上面配置的开机自启动方式,可直接使用systemctl start frpssystemctl start frpc启动服务。

ssh连接测试

在互联网环境下,通过myerp.yourdomain.com地址和6022端口,使用远程连接工具进行连接测试。

应用访问测试

在互联网环境下,通过myerp.yourdomain.com地址打开网页,检查访问结果。

由于我的环境比较复(za)杂(luan),同时环境的80端口被其他应用占用,进一步使用了nginx转发跳转,这里就不做截图效果分享了。

标签:systemctl,frps,local,穿透,FRP,ini,frpc,内网,usr
来源: https://blog.csdn.net/weixin_46985491/article/details/118937408

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有