山高疑日近,海阔觉天低

FRP

frp(Fast Reverse Proxy)是一个高性能的反向代理应用,主要用于内网穿透。它有两个主要组件:frps(服务器端)和 frpc(客户端)。通过它,你可以将内网服务器的服务暴露到公网,从而实现内网穿透的功能。下面是 frps 和 frpc 的详细使用教程。

1.frp下载

访问 frp GitHub Release 页面下载对应操作系统的版本。
例如,Linux 64位版下载链接:frp_0.38.0_linux_amd64.tar.gz,Windows 版下载链接:frp_0.38.0_windows_amd64.zip。

2.服务端配置

两种方式:一种方式直接运行,比如 ./frps -p 30100,这个端口是服务端,其它客户端需要链接这个端口
另外一种方式用配置文件,注意一点防火墙需要开放此端口,还有客户端的remote_port也要开放

3.客户端配置

配置文件

[common]
server_addr = <serverip>  //服务端ip
server_port = 30100
[ssh2]  //必须唯一
type = tcp
local_ip = 127.0.0.1  //内网的IP
local_port = 26254    //内网的port
remote_port = 30103   //希望服务暴露的端口
# 配置 HTTP 服务
[http]
type = tcp
local_ip = 127.0.0.1     # 内网的 IP 地址
local_port = 80          # 内网的 HTTP 服务端口
remote_port = 7000       # 公网暴露的端口
# 配置 VNC 服务
[vnc]
type = tcp
local_ip = 127.0.0.1     # 内网的 IP 地址
local_port = 5900        # 内网的 VNC 服务端口
remote_port = 8000       # 公网暴露的端口

配置文件toml

serverAddr = "ip"
serverPort = 30100
auth.method = "token"
auth.token = "passwd"

[[proxies]]   #ssh 复用
name = "mybox-ssh"
type = "tcpmux"
multiplexer = "httpconnect"
customDomains = ["boxssh"]
localPort = 22

[[proxies]]  #http复用
name = "mybox-nginx"
type = "http"
subdomain = "boxfile"
localPort = 8090

# 2. 如果要代理局域网设备(例如 192.168.1.173 的 SSH)
[[proxies]]
name = "device-173-ssh"
type = "tcp"
localIP = "192.168.1.173"
localPort = 22
remotePort = 6000

注意,客户端可以配置多个内网地址

4.自动运行

配置文件

cat <<EOF > ~/monitor_frp.sh
#!/bin/bash
PROGRAM_NAME="frpc"
if pgrep -x "$PROGRAM_NAME" > /dev/null
then
    echo "$PROGRAM_NAME is already running."
else
    echo "$PROGRAM_NAME is not running. Starting it..."  
    nohup /root/frp/frpc -c /root/frp/frpc.ini >/dev/null &
    echo "$PROGRAM_NAME started."
fi
EOF
chmod +x monitor_frp.sh

crontab -e

 

赞(0) 打赏
未经允许不得转载:Mr.Zhang » FRP

你的打赏是我的动力

登录

找回密码

注册