公司网站建设素材,中细软做的网站,怎样装修公司网站,四川省城乡和住房建设厅官方网站FRP 介绍
frp 是一个专注于内网穿透的高性能反向代理应用#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议#xff0c;且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
官方网站#xff1a;https://gofrp.org/zh-cn/
项目地…FRP 介绍
frp 是一个专注于内网穿透的高性能反向代理应用支持 TCP、UDP、HTTP、HTTPS 等多种协议且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
官方网站https://gofrp.org/zh-cn/
项目地址https://github.com/fatedier/frp
基本原理如下所示 下面介绍FRP的两种部署方式环境信息如下
节点角色节点类型OSIP地址FRPS服务端阿里云轻量服务器Ubuntu 22.04 LTS112.74.1.10FRPC客户端本地linux服务器Ubuntu 22.04 LTS192.168.72.16
基于docker部署
项目地址https://github.com/snowdreamtech/frp
服务端镜像地址https://hub.docker.com/r/snowdreamtech/frps
客户端镜像地址https://hub.docker.com/r/snowdreamtech/frpc
1. 使用 Docker 安装服务端 以下步骤在阿里云轻量服务器上执行并确认已安装docker环境。 创建frps服务端配置文件复制粘贴以下内容
mkdir -p /etc/frpcat /etc/frp/frps.tomlEOF
bindPort 7000
webServer.addr 0.0.0.0
webServer.port 7500
webServer.user admin
webServer.password admin
vhostHTTPPort 8080
vhostHTTPSPort 8443
EOF配置参数说明
bindPort客户端与服务端通信端口webServer.port服务端dashboard端口vhostHTTPPort定义http代理需要配置该参数vhostHTTPSPort定义https代理需要配置该参数
注意以上端口均需在防火墙放通。
使用docker 安装 frps 服务端
docker run -d --name frps --restartalways \--network host \-v /etc/frp/frps.toml:/etc/frp/frps.toml \snowdreamtech/frps:0.52.3查看容器运行状态
rootubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a6abfba322a6 snowdreamtech/frps:0.52.3 /bin/sh -c /usr/bi… About an hour ago Up About an hour frps访问dashboard
http://112.74.1.10:7500/首页如下
2. 使用 Docker 安装客户端 以下步骤在本地linux服务器上执行并确认已安装docker环境。 创建frpc客户端配置文件复制粘贴以下内容定义了两个proxies分别为tcp穿透和http穿透示例。
mkdir -p /etc/frpcat /etc/frp/frpc.tomlEOF
serverAddr 112.74.1.10
serverPort 7000
webServer.addr 0.0.0.0
webServer.port 7400
webServer.user admin
webServer.password admin[[proxies]]
name test-tcp
type tcp
localIP 127.0.0.1
localPort 22
remotePort 6000[[proxies]]
name test-web
type http
localPort 80
customDomains [112.74.1.10]
EOF参数说明
serverAddr指定服务端公网IP地址serverPort 指定服务端监听端口webServer.port客户端dashboard监听端口localIP 本地服务器IPlocalPort 本地服务器需要穿透的应用端口本示例为SSH服务22端口和NGINX服务80端口。remotePort指定服务端应用监听端口用于转发到本地SSH端口
使用 docker 部署 FRPC 客户端
docker run -d --name frpc --restartalways \--network host \-v /etc/frp/frpc.toml:/etc/frp/frpc.toml \snowdreamtech/frpc:0.52.3访问客户端 dashboard
http://192.168.72.16:7400/首页如下
3. 测试访问本地服务
测试基于TCP的SSH穿透
访问阿里云轻量服务器IP地址112.74.1.10和6000端口实际会转发到本地服务器192.168.72.16的22端口。
测试是否能否通过ssh连接到客户端。
rootubuntu:~# ssh -o Port6000 root112.74.1.10
root112.74.1.10s password:
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-89-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantageSystem information as of Thu Dec 14 02:54:06 PM CST 2023System load: 0.0Usage of /: 75.9% of 196.89GBMemory usage: 16%Swap usage: 1%Processes: 219Users logged in: 1IPv4 address for br-aeda5cc463d3: 172.18.0.1IPv4 address for br-f87de9bc351f: 172.19.0.1IPv4 address for docker0: 172.17.0.1IPv4 address for ens33: 192.168.72.16* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8sjust raised the bar for easy, resilient and secure K8s cluster deployment.https://ubuntu.com/engage/secure-kubernetes-at-the-edgeExpanded Security Maintenance for Applications is not enabled.64 updates can be applied immediately.
To see these additional updates run: apt list --upgradableEnable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status*** System restart required ***
Last login: Thu Dec 14 14:54:07 2023 from 127.0.0.1
rootubuntu:~# hostname -I
192.168.72.16 172.17.0.1 172.18.0.1 172.19.0.1
rootubuntu:~# 测试基于HTTP的WEB穿透
访问阿里云轻量服务器IP地址112.74.1.10和8080端口实际会转发到本地服务器192.168.72.16的80端口。
本地使用docker运行一个示例nginx服务用于监听80端口
docker run -d --name nginx -p 80:80 nginx测试是否能否通过轻量服务器连接到本地nginx服务。
rootubuntu:~# curl 112.74.1.10:8080
!DOCTYPE html
html
head
titleWelcome to nginx!/title
style
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
/style
/head
body
h1Welcome to nginx!/h1
pIf you see this page, the nginx web server is successfully installed and
working. Further configuration is required./ppFor online documentation and support please refer to
a hrefhttp://nginx.org/nginx.org/a.br/
Commercial support is available at
a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p
/body
/html基于systemd部署
推荐上面的docker方式部署服务端如果没有docker环境也可以使用systemd来部署和维护frp服务。
1.使用 systemd 安装服务端 以下步骤在阿里云轻量服务器上执行。 在 Linux 系统下使用 systemd 可以方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动。
安装包下载地址https://github.com/fatedier/frp/releases
下载frp安装包
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -zxvf frp_0.52.3_linux_amd64.tar.gz安装该fprs二进制文件到/usr/local/bin目录下
cp frp_0.52.3_linux_amd64/frps /usr/local/bin/创建frps配置文件
mkdir -p /etc/frp
cp frp_0.52.3_linux_amd64/frps.toml /etc/frp修改frps配置文件
cat /etc/frp/frps.tomlEOF
bindPort 7000
webServer.addr 0.0.0.0
webServer.port 7500
webServer.user admin
webServer.password admin
vhostHTTPPort 8080
vhostHTTPSPort 8443
EOF创建 frps.service 服务启动文件
使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件用于配置 frps 服务。
cat /etc/systemd/system/frps.serviceEOF
[Unit]
Description frp server
After network.target syslog.target
Wants network.target[Service]
Type simple
ExecStart /usr/local/bin/frps -c /etc/frp/frps.toml[Install]
WantedBy multi-user.target
EOF使用 systemd 命令启动 frps 服务端服务
systemctl enable --now frps查看服务运行状态
rootnode40:~# systemctl status frps
● frps.service - frp serverLoaded: loaded (/etc/systemd/system/frps.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2023-12-13 17:17:48 CST; 21h agoMain PID: 906819 (frps)Tasks: 7 (limit: 9387)Memory: 7.5MCPU: 5.643sCGroup: /system.slice/frps.service└─906819 /usr/local/bin/frps -c /etc/frp/frps.tomlDec 13 17:18:08 node40 frps[906819]: 2023/12/13 17:18:08 [I] [dashboard_api.go:186] Http response [/api/proxy/tcp]: code [200]
Dec 13 17:18:10 node40 frps[906819]: 2023/12/13 17:18:10 [I] [dashboard_api.go:329] Http request: [/api/traffic/test-tcp]
Dec 13 17:18:10 node40 frps[906819]: 2023/12/13 17:18:10 [I] [dashboard_api.go:323] Http response [/api/traffic/test-tcp]: code [200]
Dec 13 17:21:55 node40 frps[906819]: 2023/12/13 17:21:55 [I] [control.go:334] [5b5fc91b4d176c56] control writer is closing
Dec 13 17:21:55 node40 frps[906819]: 2023/12/13 17:21:55 [I] [proxy.go:115] [5b5fc91b4d176c56] [test-tcp] proxy closing
Dec 13 17:21:55 node40 frps[906819]: 2023/12/13 17:21:55 [W] [proxy.go:201] [5b5fc91b4d176c56] [test-tcp] listener is closed: accept tcp [::]:6000: use of closed network connec
Dec 13 17:21:55 node40 frps[906819]: 2023/12/13 17:21:55 [I] [control.go:423] [5b5fc91b4d176c56] client exit success
Dec 13 17:21:55 node40 frps[906819]: 2023/12/13 17:21:55 [I] [service.go:533] [1036b9eb2691ec4e] client login info: ip [192.168.72.41:35800] version [0.52.3] hostname [] os [li
Dec 13 17:21:55 node40 frps[906819]: 2023/12/13 17:21:55 [I] [tcp.go:82] [1036b9eb2691ec4e] [test-tcp] tcp proxy listen port [6000]
Dec 13 17:21:55 node40 frps[906819]: 2023/12/13 17:21:55 [I] [control.go:500] [1036b9eb2691ec4e] new proxy [test-tcp] type [tcp] success服务启停命令
systemctl start frps
systemctl stop frps
systemctl restart frps通过遵循上述步骤您可以轻松地使用 systemd 来管理 frps 服务实现启动、停止、自动运行和开机自启动。确保替换路径和配置文件名称以匹配您的实际安装。
2. 使用 systemd 安装客户端 以下步骤在本地linux服务器上执行。 在 Linux 系统下使用 systemd 可以方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动。
安装该fprc二进制文件到/usr/local/bin目录下
cp frp_0.52.3_linux_amd64/frpc /usr/local/bin/创建frps配置文件
mkdir -p /etc/frp
cp frp_0.52.3_linux_amd64/frpc.toml /etc/frp修改客户端配置文件指定服务端地址和端口
cat /etc/frp/frpc.tomlEOF
serverAddr 112.74.1.10
serverPort 7000
webServer.addr 0.0.0.0
webServer.port 7400
webServer.user admin
webServer.password admin[[proxies]]
name test-tcp
type tcp
localIP 127.0.0.1
localPort 22
remotePort 6000[[proxies]]
name test-web
type http
localPort 80
customDomains [112.74.1.10]
EOF创建 frpc.service 服务启动文件
使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frpc.service 文件用于配置 frpc 服务。
cat /etc/systemd/system/frpc.serviceEOF
[Unit]
Description frp client
After network.target syslog.target
Wants network.target[Service]
Type simple
ExecStart /usr/local/bin/frpc -c /etc/frp/frpc.toml[Install]
WantedBy multi-user.target
EOF使用 systemd 命令启动 frpc 客户端服务
systemctl enable --now frpc查看服务运行状态
rootubuntu:~# systemctl status frpc
● frpc.service - frp clientLoaded: loaded (/etc/systemd/system/frpc.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2023-12-13 17:21:55 CST; 21h agoMain PID: 69350 (frpc)Tasks: 5 (limit: 4556)Memory: 3.9MCPU: 12.045sCGroup: /system.slice/frpc.service└─69350 /usr/local/bin/frpc -c /etc/frp/frpc.tomlDec 13 17:21:55 ubuntu systemd[1]: Started frp client.
Dec 13 17:21:55 ubuntu frpc[69350]: 2023/12/13 17:21:55 [I] [root.go:139] start frpc service for config file [/etc/frp/frpc.toml]
Dec 13 17:21:55 ubuntu frpc[69350]: 2023/12/13 17:21:55 [I] [service.go:299] [1036b9eb2691ec4e] login to server success, get run id [1036b9eb2691ec4e]
Dec 13 17:21:55 ubuntu frpc[69350]: 2023/12/13 17:21:55 [I] [proxy_manager.go:156] [1036b9eb2691ec4e] proxy added: [test-tcp]
Dec 13 17:21:55 ubuntu frpc[69350]: 2023/12/13 17:21:55 [I] [service.go:161] admin server listen on 0.0.0.0:7400
Dec 13 17:21:55 ubuntu frpc[69350]: 2023/12/13 17:21:55 [I] [control.go:173] [1036b9eb2691ec4e] [test-tcp] start proxy success
Dec 13 17:22:09 ubuntu frpc[69350]: 2023/12/13 17:22:09 [I] [admin_api.go:140] Http request [/api/status]
Dec 13 17:22:09 ubuntu frpc[69350]: 2023/12/13 17:22:09 [I] [admin_api.go:142] Http response [/api/status]
Dec 13 17:22:15 ubuntu frpc[69350]: 2023/12/13 17:22:15 [I] [admin_api.go:166] Http get request [/api/config]
Dec 13 17:22:15 ubuntu frpc[69350]: 2023/12/13 17:22:15 [I] [admin_api.go:168] Http get response [/api/config], code [200]