CentOS 8 / Ubuntu 22.04 / Suse Linux 15 部署 frp 内网穿透访问 SAP
市面上免费的内网穿透工具有很多,比如:frp、ngrok、nat123、蒲公英,今天分享的是免费开源的frp使用教程。
frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。
frp下载地址:https://github.com/fatedier/frp/releases
需求:通过域名或公网IP可访问内网部署的SAP ERP服务以及SSH
一、前置条件
1、一台带公网IP的服务器(可购买便宜的阿里云/腾讯云服务器);
2、内网环境服务(比如SAP服务、WEB服务等)已搭建完毕;
3、购买的阿里云服务器已安装CentOS操作系统;
二、配置教程
配置教程主要分为两个部分,一是服务端(即带公网IP的服务器)的配置;二是客户端(内网服务器)配置。
第一步、公网服务器上安全组端口放开
登录阿里云服务平台,进入实例安全组,开放穿透代理需要的端口,在入方向,点击“手动添加”,为了配合测试,使用自定义TCP,放开了所有端口1-65301
第二步、服务端(即带公网IP的服务器)配置
将下载好的frp程序上传至CentOS系统中/usr/local/目录下并将此目录设置777权限,如下图:
配置服务端frps,编辑 frps.ini 配置以下内容:
[common]
# 设置地址及通信端口
bind_addr = 0.0.0.0
bind_port = 7000
# 设置默认的UDP端口
bind_udp_port = 7001
# 监听7080与7443端口,进行 HTTP 与 HTTPS 代理,HTTP 与 HTTPS 端口可以成设置一样
vhost_http_port = 8080
vhost_https_port = 8443
# 设置查看仪表板服务地址及端口,dashboard_addr不设置,默认与bind_addr一样,如果不设置dashboard_port端口这个服务不会开启
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# 设置仪表盘服务的登录的账号与密码,如果不设置就默认都是 admin
dashboard_user = admin
dashboard_pwd = admin
# 设置云服务器的域名,方便简单的配置代理出去的服务可以通过子域名的方式访问
subdomain_host = example.com
privilege_mode = true
# 服务器与客户端时间相差15min会连接失败,0表示不验证
authentication_timeout = 0
# 设置Token, 尽量配置复杂些,配置 frpc 会用到
token = admin
tcp_mux = true
# 设置日志文件记录路径
log_file = /usr/local/frp/frps.log
# 设置日志记录级别,分别有trace, debug, info, warn, error
log_level = info
# 设置日志记录最大天数
log_max_days = 3
设置开机自启动,在/usr/lib/systemd/system/目录下创建frps.service,编辑frps.service 内容设置以下:
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
ExecStop=/bin/kill $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
设置开机自启动
systemctl enable frps
systemctl start frps
systemctl status frps
systemctl stop frps
部分操作系统,可能需要加 .service 后缀来操作,即:
systemctl enable frps.service
systemctl start frps.service
systemctl status frps.service
systemctl stop frps.service
查看frp是否启动
ps aux | grep frps
手动启动frp
./frps -c ./frps.ini
如果使用的宝塔Linux面板,请在安全放开要代理的端口
验证服务端是否启动成功
访问:http://公网IP:7500/ 输入用户名和密码,用户名和密码为frps.ini文件中设置的,如果可以访问,可查看连接状态
重启 CentOS 服务器并验证frp是否自启动。
如果上述步骤没有问题,则说明frp的服务端配置成功了,也就意味着内网穿透你已经成功了一半!
第三步、客户端配置
登录SUSE Linux 15 SP3 ,将下载好的frp程序上传至SUSE系统中/usr/local/目录下并将此目录设置777权限,如下图:
配置服务端frpc,编辑 frpc.ini 配置以下内容:
[common]
# 云服务器的公网IP地址及 frps 服务端里面设置的通信端口
server_addr = 139.196.154.163
server_port = 7000
# 授权 token 与 frps 配置的一样
token = admin
# 设置日志文件记录路径
log_file = /usr/local/frp/frpc.log
# 设置日志记录级别,分别有trace, debug, info, warn, error
log_level = info
# 设置日志记录最大天数
log_max_days = 1
# 设置可在浏览器里面配置热更新的服务,192.168.1.88 内网IP地址
admin_addr = 192.168.1.88
admin_port = 7400
admin_user = admin
admin_pwd = admin
# RDP,即Windows的远程桌面,RDP默认端口是3389,协议为TCP
[rdp]
type = tcp
local_ip = 192.168.1.88
local_port = 3389
remote_port = 7001
subdomain = rdp
# SMB,即Windows文件共享所使用的协议,默认端口号445,协议TCP,本条规则可实现远程文件访问。
#[smb]
#type = tcp
#local_ip = 192.168.1.88
#local_port = 445
#remote_port = 7002
# 代理本机 SSH
[ssh]
type = tcp
local_ip = 192.168.1.88
local_port = 22
remote_port = 7003
# 设置本地端口80 HTTP 服务的代理
# 可通过 frps 里面配置的 subdomain_host 域名
# 访问 sap.example.com 加 HTTP 代理端口,即 http://sap.example.com:8080
[web]
type = http
local_port = 80
subdomain = sap
# 代理SAP服务
[SAP]
type = tcp
local_ip = 192.168.1.88
local_port = 3200
remote_port = 3200
# 代理SAP服务
[SAP1]
type = tcp
local_ip = 192.168.1.88
local_port = 3600
remote_port = 3600
# 代理SAP服务
[SAP2]
type = tcp
local_ip = 192.168.1.88
local_port = 3601
remote_port = 3601
设置开机自启动,在/usr/lib/systemd/system/目录下创建frpc.service,编辑frpc.service 内容设置以下:
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
设置开机自启动
systemctl enable frps
systemctl start frps
systemctl status frps
systemctl stop frps
重启SUSE Linux 15 SP3并启动SAP服务
现在找一台连接手机共享热点的电脑,访问SAP是否可以?
首先在SAP客户端配置如下: