Github地址:https://github.com/fatedier/frp
Github发布包地址:https://github.com/fatedier/frp/releases
官方教程:https://github.com/fatedier/frp/blob/master/README_zh.md
右键该下载项获取链接地址:
如果我们在内网部署了一个网页即时聊天程序,使用websocket保持长连接并即时通信,网页http请求端口为80,而websocket请求端口为45635,该网页聊天服务在内网机子上部署。
需求:希望使用frp进行内网穿透,可以访问内网机子上的web服务打开聊天网页,也可以使用websocket服务进行网页即时聊天。
使用
mkdir frp
命令创建一个新的文件夹frp,然后在文件夹下使用命令:
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
下载frp。
tar -zxvf frp_0.32.1_linux_amd64.tar.gz
cd frp_0.32.1_linux_amd64/
rm -rf frpc
rm -rf frpc.ini
vi frps.ini
打开该文件,并将该文件内容修改为:
[common]
# 服务器端监听客户端连接请求的端口
bind_port = 7000
# 服务器端监听http请求的端口
vhost_http_port = 80
保存退出。
开启端口:
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=45635/tcp --permanent
重启防火墙:systemctl restart firewalld.service
./frps -c ./frps.ini
nohup ./frps -c frps.ini > ./log.txt 2>&1 &
日志输出到log.txt
#! /bin/bash
nohup ./frps -c frps.ini > log.txt 2>&1 &
echo $! >./pid.txt
#! /bin/bash
PID=$(cat ./pid.txt)
kill -9 $PID
tail -f ./log.txt
使用
mkdir frp
命令创建一个新的文件夹frp,然后在文件夹下使用命令:
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
下载frp。
tar -zxvf frp_0.32.1_linux_amd64.tar.gz
cd frp_0.32.1_linux_amd64/
rm -rf frps
rm -rf frps.ini
vi frpc.ini
打开该文件,并将该文件内容修改为:
[common]
server_addr = xx.xx.xx.xx(外网主机ip)
server_port = 7000
# 内网web服务,监听端口为80
[web]
type = http
local_port = 80
custom_domains = xx.xx.xx.xx(外网主机ip,和server_addr的相同,或者写域名,但是要做dns解析)
# websocket服务,端口假设为45635
[web01]
type = tcp
local_port = 45635
custom_domains = xx.xx.xx.xx(外网主机ip,和server_addr的相同,或者写域名,但是要做dns解析)
remote_port = 45635
保存退出。
开启端口:
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=45635/tcp --permanent
重启防火墙:systemctl restart firewalld.service
./frpc -c ./frpc.ini
nohup ./frpc -c frpc.ini > ./log.txt 2>&1 &
日志输出到log.txt
#! /bin/bash
nohup ./frpc -c frpc.ini > log.txt 2>&1 &
echo $! >./pid.txt
#! /bin/bash
PID=$(cat ./pid.txt)
kill -9 $PID
tail -f ./log.txt
分别开启远程主机frp服务,以及内网frp服务,保证相关端口已开启。
frp内网穿透访问内网web服务:xx.xx.xx.xx:80
frp内网穿透访问内网websocket服务:xx.xx.xx.xx:45635
如果有兴趣可以访问我的个站:http://www.stubbornhuang.com