FRP内网穿透之场景实战
场景说明
内网服务器的业务应用系统,需要通过外网域名访问;同时为了后期内网服务器运维方便,需要能够通过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
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 frps
和 systemctl start frpc
启动服务。
ssh连接测试
在互联网环境下,通过myerp.yourdomain.com地址和6022端口,使用远程连接工具进行连接测试。
应用访问测试
在互联网环境下,通过myerp.yourdomain.com地址打开网页,检查访问结果。
由于我的环境比较复(za)杂(luan),同时环境的80端口被其他应用占用,进一步使用了nginx转发跳转,这里就不做截图效果分享了。
更多推荐
所有评论(0)