利用frp和云服务器实现内网穿透功能

什么是frp

frp 是一个高性能的反向代理应用,支持 tcp, udp, http, https 协议。

frp 的作用

  • 利用处于防火墙后的机器,对外网环境提供 http 或 https 服务。

  • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。

  • 利用处于防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司局部环境的主机。

服务端下载frp 

官方连接:https://github.com/fatedier/frp

利用frp和云服务器实现内网穿透功能_第1张图片

wget https://github.com/fatedier/frp/releases/download/v0.41.0/frp_0.41.0_linux_amd64.tar.gz
tar -zxvf frp_0.41.0_linux_amd64.tar.gz

利用frp和云服务器实现内网穿透功能_第2张图片

“frps”、“frps_full.ini”、"frps.ini"是放在服务器端运行的可执行文件和配置文件。

“frpc”、“frpc_full.ini”、"frpc.ini"是放在客户端端运行的可执行文件和配置文件。

配置服务端frps.ini文件

[common]
bind_addr= 0.0.0.0   #无需修改
bind_port = 7000     #服务端端口号
token = 123456       #自定义token值,客户端要与这里的token一致

dashboard_port = 7500  #可视化界面的访问端口
dashboard_user = admin #登录名
dashboard_pwd = admin  #密码

编辑后台启动

vim /lib/systemd/system/frps.service

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/自己的路径/frps -c /自己的路径/frps.ini

[Install]
WantedBy=multi-user.target

利用frp和云服务器实现内网穿透功能_第3张图片

systemctl start frps    #启动服务

systemctl enable frps   #开机自启动

systemctl restart frps #重启服务

systemctl stop frps     #停止服务

systemctl status frps   #查看启动状态

 启动后查看状态是这样的就是正常启动,如果启动提示Warning: frps.service changed on disk. Run 'systemctl daemon-reload' to reload units. 需要执行         systemctl daemon-reload         来解决利用frp和云服务器实现内网穿透功能_第4张图片

 客户端下载frp

客户端下载与服务端一模一样,如果是其他系统选择其他系统版本下载即可,此处不在进行赘述

配置客户端frpc.ini文件

[common]
server_addr = *********    #自己云服务器ip
server_port = 7000         #服务端端口
token = 123456             #自定义token,需要与服务端一致

[ssh]
type = tcp                 #协议类型
local_ip = 127.0.0.1       #本机ip
local_port = 22            #需要映射的端口号
remote_port = 6000         #服务器映射的端口号

[tomcat]
type = tcp                 #协议类型
local_ip = 127.0.0.1       #本机ip
local_port = 8080          #需要映射的端口号
remote_port = 8085         #服务器映射的端口号

#如果需要映射多个端口则继续定义即可

编辑后台启动

vim /lib/systemd/system/frpc.service
[Unit]
Description=frapc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/自己的路径/frpc -c /自己的路径/frpc.ini

[Install]
WantedBy=multi-user.target

利用frp和云服务器实现内网穿透功能_第5张图片

systemctl start frpc    #启动服务

systemctl enable frpc   #开机自启动

systemctl restart frpc #重启服务

systemctl stop frpc     #停止服务

systemctl status frpc   #查看启动状态

 连接成功利用frp和云服务器实现内网穿透功能_第6张图片

 如果服务端和客户端都启动成功没有问题,但是打不开此页面请见查你的云服务器是否打开了此端口的访问权限

你可能感兴趣的:(linux,阿里云)